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

Example for plotting contour on polar grid is not working in matlab

我正在关注以下 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。

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

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

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

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