如何在MATLAB中以圆柱坐标绘制函数a = a(r,theta)?

时间:2017-01-20 19:34:36

标签: matlab

a 是一个100x100矩阵,包含微分方程的数值解。函数a(r,theta)没有r和theta的显式形式。我试过创建一个使用meshgrid对r和theta进行网格划分,然后使用pol2cart将问题转换为笛卡尔坐标系。但是这不起作用,因为 a 不能用r和theta来表达。

[R, Theta]=meshgrid(r,theta);
[x,y,A]=pol2cart(Theta,r,a);
contourf(x,y,A,50,'linecolor','none');

1 个答案:

答案 0 :(得分:0)

看起来错误可能仅仅是大写问题。 'r' - > 'R'在我的测试实现中产生了极坐标等值线。

% Setting up the plotting ranges
r = 0:99;
theta = linspace(0,2*pi,100);
[R, Theta]=meshgrid(r,theta);

a = R + Theta; % Your numerical solution goes here

[x,y,A]=pol2cart(Theta,R,a); % <- Your error is here?
contourf(x,y,A,50,'linecolor','none');

pol2cart函数的参数应该具有相同的大小。