在极坐标网格上绘制等高线的示例在matlab中不起作用

在极坐标网格上绘制等高线的示例在matlab中不起作用,matlab,contour,polar-coordinates,Matlab,Contour,Polar Coordinates,我遵循以下matlab示例:。这个例子是可行的,但是当我想要绘制自己的数据时,图形不会改变,并且我没有得到任何输出。使用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)) colo

我遵循以下matlab示例:。这个例子是可行的,但是当我想要绘制自己的数据时,图形不会改变,并且我没有得到任何输出。使用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
do)和
c
,这是一个高度矩阵。我只是替换了最后一个命令:

contour(a, b, c, 30)

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

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

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


因为我的数据从x值2开始,因此没有显示在
0
1
的范围内,我们不知道。您没有向我们显示代码。@AnderBiguri:code added,我希望这就是您需要的一切。如果您只向我们显示您的代码会更好。我们可以看到示例中有效的代码,那么您向我们显示无效的代码如何?@AnderBiguri:最后一行不起作用,即,如果我输入代码,图形中的任何内容都不会更改。如果要获取a、b和c的值,这是一个很长的计算过程,包括来自外部文件的多个数据。但是命令本身没有将其映射到极性场就可以工作。
h = polar([0 2*pi], [0 max(a)]);