如何用Matlab自动调整极坐标图中的轴?

时间:2015-11-09 22:32:47

标签: matlab graph

我在MATLAB中使用polar在同一图中绘制多个图。 它工作正常,但我无法自动调整图形的限制,我最终得到这样的东西: enter image description here

以下是我的代码的一部分:

alpha = 0
tmp = [];
matriz = [];

for rad =-pi:0.01:pi
    matriz = [matriz; rad, ganhoComb(alpha,0.2,rad)];
end
tmp = matriz;
teta = tmp(:,1);
ro = tmp(:,2);
graf1 = polar(teta,ro);
grid
set(graf1,'color','black','linewidth',1.4)
hold on ;
title(['\fontsize{14}','Método Lax-Wendroff ']) 


%%
tmp =[]
matriz = []
for rad =-pi:0.01:pi
    matriz = [matriz; rad, ganhoComb(alpha,0.4,rad)];
end
tmp = matriz;
teta = tmp(:,1);
ro = tmp(:,2);
graf2 = polar(teta,ro);
set(graf2,'color','green','linewidth',1.4)

1 个答案:

答案 0 :(得分:1)

首先,由于ganhoComb,您的代码无法验证。它是什么?

您的问题 - 是您使用hold on修复了图表,因此所有其他图表都不会缩放它:

theta  = linspace(0,2*pi,100);
r      = sin(2*theta) .* cos(2*theta);
r_max  = 1;
h_first = polar(theta,r_max*ones(size(theta)));
hold on;
h      = polar(theta, r);
h      = polar(theta, r*2);
h      = polar(theta, r*3); 

enter image description here

所以我建议两个解决方案:

  1. 创建一个大尺寸的圆圈,以确保您的所有绘图都设置为INTO。让它隐形:

    set(h_first, 'Visible', 'Off');
    
  2. 它会起作用,但你不会真正自动缩放。

    1. 所以第二个解决方案 - 在绘图之前找到最大半径,并从最大的一个开始绘制。
    2. 希望,这有帮助!