0

我已经生成了一个矩形矩阵,其中 azimouth 角度随行而变化,而半径随着列的变化而变化。这些旨在表示旋转直升机叶片所经历的相对速度。这会产生一个称为 Vmat 的矩阵。我想把它画成一个圆圈(代表刀片的旋转)

到目前为止我已经尝试过

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

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

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

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

谢谢詹姆斯

4

1 回答 1

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);
于 2014-01-12T02:49:38.933 回答