我正在关注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)
我的值是a
,b
和c
,代表网格(如TH
和R
)和c
,它是一个高度矩阵。我只是替换了最后一个命令:
contour(a, b, c, 30)
a是361x361大小的矩阵,范围从2到226,b相同。 c从0.5到50,大小为361x361。
好的,问题的解决方案只是重写这一行
h = polar([0 2*pi], [0 1]);
至
h = polar([0 2*pi], [0 max(a)]);
因为我的数据从x值2开始,因此没有显示在从0
到1
的范围内。