在极地网格上绘制轮廓的示例在matlab中不起作用

时间:2015-02-18 08:12:29

标签: matlab contour polar-coordinates

我正在关注matlab的以下示例:http://se.mathworks.com/help/matlab/creating_plots/contour-plot-in-polar-coordinates.html。这个例子有效,但是当我想绘制自己的数据时,图形不会改变,我没有输出。像往常一样使用contour()绘制我的数据。我做错了什么?

编辑:示例中的代码是:

th = (0:5:360)*pi/180;
r = 0:.05:1;
[TH,R] = meshgrid(th,r);
[X,Y] = pol2cart(TH,R);
Z = X + 1i*Y;
f = (Z.^4-1).^(1/4);

figure
surf(X,Y,abs(f))
colormap summer;
hold on
surf(X,Y,zeros(size(X)))
hold off
xlabel('Real')
ylabel('Imaginary')
zlabel('abs(f)');
figure
contour(X,Y,abs(f),30)
axis equal
xlabel('Real')
ylabel('Imaginary')
h = polar([0 2*pi], [0 1]);
delete(h)
hold on
contour(X,Y,abs(f),30)

我的值为abc,代表网格网格(THR)和c高度矩阵。我只是替换了最后一个命令:

contour(a, b, c, 30)

a是361x361大小的矩阵,范围从2到226,b相同。 c从0.5到50,大小为361x361。

1 个答案:

答案 0 :(得分:0)

好的,问题的解决方法就是重写这一行

h = polar([0 2*pi], [0 1]);

h = polar([0 2*pi], [0 max(a)]);

因为我的数据以x值2开始,因此未显示在01的范围内。