在极坐标网格上绘制轮廓的示例在 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)
我的值是 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
的范围内。
我正在关注以下 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
的范围内。