Employing RegularizeData3D function

3 次查看(过去 30 天)
Roderick
Roderick 2024-9-3
回答: Yash 2024-9-3
Dear all
I have a one-dimensional array, let's call it z, which has a given value for each pair of points (x,y). Let's say that x ranges from 0 to 300 and y from 0 to 50, being both 1D arrays too. Now, I am interested in rearrange the data to plot it through imagesc. At the same time, I want to increase the density of values of z within the spatial domain given by the 2D minimum and maximal values of x and y, respectively.
For that, I am using the RegularizeData3D function as follows:
new_x=linspace(min(x),max(x),1000);
new_y=linspace(min(x),max(y),500);
new_z=RegularizeData3D(x,y,z,new_x,new_y,'interp','bicubic','smoothness',1e-4);
However, it seems that new_z has 500x1000 dimensions, so I am not sure about which should be the order of the inputs to RegularizeData3D to a 1000x500 array, so that the each column represents each value of new_x and each row each value of new_y.

回答(1 个)

Yash
Yash 2024-9-3
Hello Richard,
I couldn't find detailed documentation for the "RegularizeData3D" function you mentioned. The Add-On page does not specify the output dimensions. However, after reviewing the function code and its behavior, it seems that the output size is xnodes * ynodes, where "xnodes" corresponds to "new_x" and "ynodes" corresponds to "new_y" in your query.
You should avoid directly swapping "new_x" and "new_y" in the code, as this might lead to incorrect output because "new_x" and "x" are related and "new_y" and "y" are related. If you need to adjust the output dimensions, consider transposing the output "new_z" to achieve the desired size.
For more information on how to transpose matrices in MATLAB, you can refer to the following documentation: https://www.mathworks.com/help/matlab/ref/transpose.html
I hope this helps!

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by