2014-01-11 183 views
0

我已经生成了一个矩形矩阵,其中azimouth角度随着行的变化而变化,并且半径随着您更改列而发生变化。这些旨在表示旋转直升机桨叶所经历的相对速度。这产生了一个称为Vmat的矩阵。我想在一个圆圈绘制这出现(表示叶片的旋转)将一个矩形矩阵绘制成圆形

到目前为止我试图

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

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

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

,因为它与azimouth角度和半径变化,这应该产生表示速度的轮廓表面但它会出现尺寸错误。 我不介意,如果它是2D轮廓图或3D图,我猜两者都会以类似的方式写入。

感谢 詹姆斯

回答

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); 
+0

想他们两者; surf()继续出现尺寸错误。等值线图出现了:X的大小必须匹配Z的大小或 Z的列数。 – user3185852

+0

如果你给我你的电子邮件,我可以向你发送我需要使用的代码位。 – user3185852

+0

“r”,“az”和“Vmat”的大小是多少? – nkjt