以二维振动为例展示使用matlab画圆形三维图的偷懒方法

画图主要是用极坐标,我们使用画复数的函数来画。

clc;%清空上次的
%draw_Bessel%画这个东西
a=4;%圆形半径%
%定义角向和径向的步长和范围
fai=[-4:0.1:4];
r=[0:0.02:a];

%将fai和r组合起来并生成复平面
[R,T] = meshgrid(fai,r);
Z = R.*exp(1i*T);

%和画具体图有关的
m=1;%阶数%
k_11=4.612/a;
B=1;
A_11=-((besseli(m,k_11*a))/(besselj(m,k_11*a)))*B;%边界条件
F_11=cos(m*T).*((A_11.*besselj(m,k_11*R)+B.*besseli(m,k_11*R)));
F=F_11;

%开始画图
cplxmap(Z,F);
xlabel('')
ylabel('')
title('鼓膜振动');```

总结一下

 1. 定义fai和r,用一维的步长来定义。
 2. 使用meshgrid(fai,r),得到[R,T]组合
 3. 使用Z = R.*exp(1i*T),生成复平面
 4. 极坐标下的函数,径向坐标用R,角向坐标用T。记得运算符号加".",表示矩阵乘法。
 5. 使用cplxmap画图;
 
 缺点是,cplxmap画出的图,颜色用来表示虚部,但因为虚部是0,所以整个图形的颜色都是一样的。
 优点是,不需要想太多,直接往里套就好了,还可以画复平面上的函数。

你可能感兴趣的:(matlab,画图,作业)