如何在平面中表示网格圆?

时间:2015-11-25 14:06:52

标签: matlab plot

我的想法是使用颜色来表示在极坐标(网格)中划分的平面圆中的温度,因为绘图轴将仅显示几何尺寸。

到目前为止,这就是我所拥有的。

[R,THETA] = meshgrid(linspace(0,r,nr),linspace(0,theta,ntheta)*(pi/180));
[X,Y] = pol2cart(THETA,R);    
contourf(X,Y,T,10);

enter image description here

这里的主要问题是可怕的线条和没有theta网格。

enter image description here

这就是我正在寻找的那种网格,但是在一个平面内。

代码:

r = 0.05; % Radius (m)
dr = 0.0025; % Element Size R (m)
nr = r/dr+1; % Number of Elements R
rc = (nr-1)/2+1; % Central Element R

theta = 360; % Degrees (°)
dtheta = 5; % Elezement Size Theta (°)
ntheta = theta/dtheta+1; % Number of Elements Theta

[R,THETA] = meshgrid(linspace(0,r,nr),linspace(0,theta,ntheta)*(pi/180));

[X,Y] = pol2cart(THETA,R);

T1 = 10;
T2 = 50;

dT = T2-T1; % dTemperature

for i = 1:73
    T(i,:) = T1:dT/(nr-1):T2; % Temperatura Distribution
    %T(i,:) = T(i,:) * i*0.5;
end

contourf(X,Y,T,10);

提前谢谢。

1 个答案:

答案 0 :(得分:3)

不确定在这里使用网格最简单。 为什么不绘制线条,类似于MATLAB内置polar()中的内容:

N_half = 12;
th = (1 : N_half) * 2 * pi / (2 * N_half);
cst = cos(th);
snt = sin(th);
cs = [-cst; cst];
sn = [-snt; snt];
line(r * cs, r * sn, 'Color', 'k');
axis 'square'

给出

enter image description here

其中N_half修改您要绘制的线数。