用函数 pie 和 pie3 绘制饼图。
x=[200,360,120,400,320];
subplot(2,2,1), pie(x,[0 0 0 1 0])
subplot(2,2,2), pie3(x,[0 0 0 1 0])
subplot(2,2,3), pie(x(2:5))
subplot(2,2,4),
x=[0.1,0.12,0.21,0.34,0.11];
sph2cart 命令
将球坐标转化直角坐标,其调用格式为: [X,Y,Z] = sph2cart(TH,PHI,R)
参数 TH 为球坐标系下的方位角( Azimuth),PHI 是球坐标系下的俯视角( Elevation),R 是球半径。他们的大小必须相等或成比例。X、Y、Z 为直角坐标系下的坐标向量或矩阵。 函数pol2cart和sph2cart的用法。 theta=0:pi/20:6*pi; rho=sin(theta);
[t,r]=meshgrid(theta,rho); z=r.*t;
[X,Y,Z]=pol2cart(t,r,z); mesh(X,Y,Z)
phi=theta.^2-theta;
[t1,p1]=meshgrid(theta,phi); r1=p1.*t1;
figure(2) %绘制球坐标转化直角坐标时的图形 [X1,Y1,Z1]=sph2cart(t1,p1,r1); mesh(X1,Y1,Z1)
绘制图形,并用函数 xlabel、title 和 legend 命令进行标注。
legend命令实现不同图例的说明。
t=0:0.1:4*pi; y=sin(t); y1=cos(t); plot(t,y,':',t,y1,'r*')
xlabel('x 轴 (0--4\\pi)','fontsize',12,'fontweight','bold')
ylabel('y 轴','fontsize',12,'fontweight','bold')
title('绘制正弦波和余弦波 Pos=1','fontsize',10,'fontweight','bold','fontangle','italic')
text(pi,0,'\\leftarrowsin(\\pi)=0')
text(pi,-1,'\\leftarrowcos(\\pi)=-1')
text(pi/2,0.9,['\%uparrowsin(\\pi/2)=',num2str(sin(pi/2))])
text(0,-0.6,['绘图日期:',date])
text(0,-0.8,['MATLAB 版本:',version])
legend('正弦波','余弦波')
figure(2)
plot(t,y,':',t,y1,'r*')
title('绘制正弦波和余弦波 Pos=0','fontsize',10,'fontweight','bold','fontangle','italic')
legend('正弦波','余弦波',0)
grid on
figure(3)
text(7*pi/2,0,'\\rightarrowcos(\\pi*7/2)=0') legend('正弦波','余弦波',-1) grid off
创建一个图形对象,并寻求图形对象的句柄值。
mesh(peaks(30)); %创建山峰的网格图
text(30,20,2,'\\leftarrowpeak') %给图形对象加上文本,图形对象中包括坐标轴、线条和文本标注
h=findobj(gcf) %求当前图形窗口的句柄
h= %返回句柄值赋予变量
1.0000
99.0010
101.0006
100.0016
函数 copyobj 的用法。
mesh(peaks(30));
text(30,20,2,'\\leftarrowpeak');
hh=findobj(gcf)
在上述程序之后加入如下内容:
h=findobj('string','\\leftarrowpeak') %将文字对象的句柄值返回给变量 h
figure %重新建立一个图形对象
mesh(peaks(20)); %在 20*20 的区域创建图形内容
使用 copyobj 命令进行对象的复制,在上述程序后加上如下内容:
ha=copyobj(h,gca) %将文本对象( h 句柄所指的对象)复制到新区域图形中
hh = %程序输出结果
1.0000
99.0013
101.0011
100.0038
h =
101.0011
ha =
200.0004
创建一个图形对象,练习和体会 set 和 get 函数的用法。
x=0:0.1:2*pi;
y1=sin(x); %创建一个正弦函数
H1_sin=plot(x,y1,'*') %画图并返回图像的句柄值
set(H1_sin,'color',[1,0.5,0],'Linewidth',1) %调用函数 set 设置正弦曲线的颜色和线宽 y2=cos(x); hold on
H1_cos=plot(x,y2)
set(H1_cos,'color',[0.25 0 1])
title('正弦和余弦函数曲线','fontsize',16,'color','blue')
H_sin_color=get(H1_sin,'color') %调用 get 函数返回具有句柄 H1_sin 的对象的颜色 程序执行结果如下 H1_sin =
3.0010 H1_cos = 101.0009 H_sin_color =
1.0000 0.5000 0
单自由度系统有阻尼自由振动
参数 ωn =10, x0 =1, v0 =0,计算的终止时间 t=2。试求ξ 从 0.1 到 1运动方程的解,并画出波形。 % 首先清空 MATLAB 的工作空间 clear; % 给定初值 wn=10; tf=2; x0=1; v0=0; % 计算不同的ξ 值所对应的振型 for j=1:10;
eta(j)=0.1*j;
wd(j)=wn*sqrt(1-eta(j)^2); % 求振幅 A
a=sqrt((wn*x0*eta(j)+v0)^2+(x0*wd(j))^2)/wd(j);
%求相位角
phi=atan2(wd(j)*x0,v0+eta(j)*wn*x0);
%设定自变量数组 t
t=0:tf/1000:tf;
%求过渡过程
x(j,:)=a*exp(-eta(j)*wn*t).*sin(wd(j)*t+phi); end
%在同一个图形窗口中绘制不同的ξ 值所对应的振型
plot(t,x(1,:),t,x(2,:),t,x(3,:),t,x(4,:),...
t,x(5,:),t,x(6,:),t,x(7,:),t,x(8,:),...
t,x(9,:),t,x(10,:))
grid on
%新建一个图形窗口,绘制三维网格图
figure
mesh(x)
b.由 sym 命令创建
>> f=sym('a*x^2+b*x+c') f =
a*x^2+b*x+c
>> f1=sym('a*x^2+b*x+c=0') f1 =
a*x^2+b*x+c=0
>> A=sym('[4+x, x^2, x;x^3, 5*x-3, x*a]') A =
[ 4+x, x^2, x] [ x^3, 5*x-3, x*a]
c.由 syms 命令创建
>> syms x a b c >> f=a*x^2+b*x+c f =
a*x^2+b*x+c
>> syms x a
>> B=[4+x x^2 x;x^3 5*x-3 x*a] B =
[ 4+x, x^2, x] [ x^3, 5*x-3, x*a] 不能创建符号方程
6、符号微积分
Matlab自变量确定原则:除i、j外,字母位置最接近x的小写字母为自变量;如果表达式中没有变量,x会被视为默认的变量。由函数findsym可以找到默认变量 a. 符号极限 limit(F,x,a)
limit(F,a),变量为由findsym定义的默认变量 limit(F,x,a,’right’) /limit(F,x,a,’left’) Limit(F), a=0
>> a=sym('[1/x, 1/(x+1); 1/(x+2), 1/(x+3)]') >> syms x a t h
a = >> limit(sin(x)/x)
[ 1/x, 1/(x+1)] ans =
[ 1/(x+2), 1/(x+3)] 1
>> limit((1+2*t/x)^(3*x),x,inf)
>> b=sym('[x, 1; x+2, 0]') ans =
b = exp(6*t)
[ x, 1] [ x+2, 0]
>> b-a ans =
[ x-1/x, 1-1/(x+1)] [ x+2-1/(x+2), -1/(x+3)]