将矩形矩阵绘制成圆形

时间:2014-01-11 20:00:26

标签: matlab plot surf cylindrical

我生成了一个矩形矩阵,其中azimouth角度随行变化,半径随着列的变化而变化。这些旨在表示旋转直升机桨叶所经历的相对速度。这产生了一个叫做Vmat的矩阵。我想将其绘制成圆形(表示刀片的旋转)

到目前为止,我已经尝试了

[R,T] = meshgrid(r,az);      

[x,y] = pol2cart(T,R);      

surf(x,y,Vmat(r,az));      

应该产生一个轮廓曲面,显示速度,因为它随着方位角和半径的变化但是会出现尺寸误差。 我不介意它是2d轮廓图还是3d图我想两者都会以类似的方式编写。

由于 詹姆斯

1 个答案:

答案 0 :(得分:0)

错误是写Vmat(r,az),假设这些是半径和方位角的实际值,而不是半径和方位角的索引。如果您只想采用Vmat的一部分,这只是一个稍微不同的问题,但这应该有效:

[R,T] = meshgrid(r,az);  % creates a grid in polar coordinates   
[x,y] = pol2cart(T,R);   % changes those to cartesian for surf
surf(x,y,Vmat);      

或者你可以做一个轮廓图:

h = polar([0 2*pi], [0 max(r)]); % set up polar axes with right scale
delete(h) % remove line
hold on
contour(x,y,Vmat);
相关问题