当前位置:文档之家› matlab程序设计与应用第二版习题答案

matlab程序设计与应用第二版习题答案

matlab程序设计与应用第二版习题答案
matlab程序设计与应用第二版习题答案

matlab程序设计与应用第二版习题答案【篇一:matlab程序设计与应用(第二版)实验答案】

%实验一 matlab运算基础

%第1题

%(1)

z1=2*sin(85*pi/180)/(1+exp(2))

%(2)

x=[2,1+2i;-0.45,5];

z2=0.5*log(x+sqrt(1+x.^2))

%(3)

a=-3.0:0.1:3.0;

z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)

%(4)

t=0:0.5:2.5;

z4=t.^2.*(t=0t1)+(t.^2-1).*(t=1t2)+(t.^2-2*t+1).*(t=2t3)

%第2题

a=[12 34 -4;34 7 87;3 65 7];

b=[1 3 -1;2 0 3;3 -2 7];

a+6*b

a-b+eye(size(a))

a*b

a.*b

a^3

a.^3

a/b

b\a

[a,b]

[a([1,3],:);b^2]

%第3题

a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] b=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]

c=a*b

f=size(c)

d=c(f(1)-2:f(1),f(2)-1:f(2))

whos

%第4题

%(1):

a=100:999;

b=rem(a,21);

c=length(find(b==0))

%(2):

a=lsdhksdlkklsdkl;

k=find(a=aa=z);

a(k)=[]

%实验二 matlab矩阵分析与处理 %第1题

e=eye(3);

r=rand(3,2);

o=zeros(2,3);

s=diag([2,3]);

a=[e,r;o,s];

a^2

b=[e,(r+r*s);o,s^2]

%第2题

h=hilb(5)

p=pascal(5)

hh=det(h)

hp=det(p)

th=cond(h)

tp=cond(p)

%第3题

a=fix(10*rand(5))

h=det(a)

trace=trace(a)

rank=rank(a)

norm=norm(a)

%第4题

a=[-29,6,18;20,5,12;-8,8,5]

[v,d]=eig(a)

%数学意义略

%第5题方法一

%(1):

a=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; b=[0.95,0.67,0.52];

x=inv(a)*b

%(2):

b=[0.95,0.67,0.53];

x=inv(a)*b

%(3):

cond(a)

%第5题方法二

a=hilb(4)

a(:,1)=[]

a(4,:)=[]

b=[0.95,0.67,0.52];

x=inv(a)*b

b1=[0.95,0.67,0.53];

x1=inv(a)*b1

n=cond(b)

n1=cond(b1)

na=cond(a) %矩阵a为病态矩阵

%第6题

a=[1,4,9;16,25,36;49,64,81]

b=sqrtm(a)

c=sqrt(a) %sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算

%实验三选择程序结构设计

%第1题程序一

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];

y=[]; %建立存放所有y值的矩阵

for x0=x

if x00x0~=-3

y=[y,x0*x0+x0-6];

elseif x0=0x05x0~=2x0~=3

y=[y,x0*x0-5*x0+6];

else

y=[y,x0*x0-x0-1];

end

end

x%输出所有x

y%输出所有y

%第1题程序二

x=[-5,-3,1,2,2.5,3,5];

y=[];

for a=1:7

if x(a)0x(a)~=-3

y=[y,(x(a))^2+x(a)-6];

elseif x(a)=0x(a)5x(a)~=2x(a)~=3

y=[y,(x(a))^2-5*x(a)+6];

else

y=[y,x(a)*x(a)-x(a)-1];

end

end

%第2题程序一

x=input(请输入一个百分制成绩:);

if x100|x0

disp(您输入的成绩不是百分制成绩,请重新输入。);

else

if x=100x=90

disp(a);

elseif x=89x=80

disp(b);

elseif x=79x=70

disp(c);

elseif x=69x60

disp(d);

else

disp(e);

end

end

%第2题程序二

s=input(请输入一个成绩(0分到100分之间):); %s用于存放成绩

while 1%判断输入成绩的合理性

if s0|s100

disp(输入的成绩需在0到100之间,请重新输入:)

s=input(请输入一个成绩(0分到100分之间):);

else

break;

end

end

switch fix(s/10)%对成绩做出等级判断

case {9,10}

disp(a)

case 8

disp(b)

case 7

disp(c)

case 6

disp(d)

otherwise

disp(e)

end

%第3题

n=input(请输入员工工号:);

h=input(该员工工作时数是:);

if h120

x=(h-120)*84*(1+0.15)+120*84;

elseif h60

x=h*84-700;

else

x=h*84;

end

disp([num2str(n),号员工,的应发工资为,num2str(x)]); %第4题(还可以用switch语句实现)

a=fix(10+(99-10)*rand(1,2)) %产生两个随机整数

x=a(1);

y=a(2);

t=input(请输入运算符号:,s);

if t==+

z=x+y;

elseif t==-

z=x-y;

elseif t==*

z=x*y;

elseif t==/

z=x/y;

end

disp([num2str(x),t,num2str(y),=,num2str(z)])%

结果

%第5题

a=rand(5,6) %产生5x6的随机矩阵

n=input(请输入您要输出矩阵的第几行:);

if n5

disp(超出了矩阵的行数,矩阵的最后一行为:)

a(5,:)

else

disp([矩阵的第,num2str(n),行为:])

a(n,:)

end

%实验四循环结构程序设计

%第1题程序一

s=0;

n=input(n=?);

for i=1:n

s=s+1/i/i;

end

pi=sqrt(6*s)

pi

%第1题程序二

n=input(n=?);

a=1:n;

输出运算

【篇二:matlab程序设计与应用(第二版)课后实验答案】txt>实验一matlab运算基础

1. 先求下列表达式的值,然后显示matlab工作空间的使用情况并

保存全部变量。 2sin850

(1) z1?

21?e

(2) z2?1?2i??21 ln(x,其中x???5?2??0.45

e0.3a?e?0.3a0.3?asin(a?0.3)?ln,a??3.0,?2.9,?,2.9,3.0 (3) z3?22 ?t20?t?1?(4) z4??t2?11?t?2,其中t=0:0.5:2.5

?t2?2t?12?t?3?

2. 已知:

?1234?4??13?1??,b??203? a??34787???????3657???3?27??

求下列表达式的值:

(1) a+6*b和a-b+i(其中i为单位矩阵)

(2) a*b和a.*b

(3) a^3和a.^3

(4) a/b及b\a

(5) [a,b]和[a([1,3],:);b^2]

解:

3. 设有矩阵a和b

?1?6?a??11??16

??215??3?1778910???12131415?,b??0??17181920??9?22232 425???423416??69??23?4? ?70?1311??0

(1) 求它们的乘积c。

(3) 查看matlab工作空间的使用情况。

4. 完成下列操作:

(1) 求[100,999]之间能被21整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

解:(1) 结果:

(2). 建立一个字符串向量例如:

ch=abc123d4e56fg9;则要求结果是:

实验二 matlab矩阵分析与处理

?e3?3a?1. 设有分块矩阵?o?2?3r3?2?,其中e、r、o、s分别为单位矩阵、随机矩阵、零矩s2?2??

阵和对角阵,试通过数值计算验证a??

解:m文件如下;

2?e?or?rs?。 ?2s?

由ans,所以a??2?e

?or?rs? ?2s?

2. 产生5阶希尔伯特矩阵h和5阶帕斯卡矩阵p,且求其行列式的值hh和hp以及它们的条件数th和tp,判断哪个矩阵性能更好。为什么?

解:m文件如下:

解:m文件如下:

4. 已知

??29618?? a??20512?????885??

求a的特征值及特征向量,并分析其数学意义。解:

m文件如图:

【篇三:matlab程序设计与应用(第二版) 刘卫国课后

实验报告】

s=txt>一、实验目的

1、熟悉启动和退出matlab的方法。

2、熟悉matlab命令窗口的组成。

3、掌握建立矩阵的方法。

4、掌握matlab各种表达式的书写规则以及常用函数的使用。

二、实验内容

三、实验程序

1、

1.1

z1=(2*sin(85*pi/180))/(1+exp(2));

结果

z1 = 0.2375

1.2

x=[2,1+2*1i;-0.45,5];

z2=1/2*log10(x+sqrt(1+x^2));

结果

x =2.0000 1.0000 + 2.0000i

-0.4500 5.0000

z2 =0.3090 - 0.0110i0.3895 + 0.1589i

0.0929 + 0.4058i0.5012 - 0.0019i

1.3

a=-3.0:0.1:3.0;

z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log10((0.3+a)/2);

1.4

t=0:0.5:2.5;

z4=(t=0t1).*(t.*t)+(t=1t2).*(t.*t-1)+(t=2t3).*(t.*t-2*t+1);

结果

z4 = 0 0.25000 1.2500 1.0000 2.2500

2、

a=[12,34,-4;34,7,87;3,65,7];

b=[1,3,-1;2,0,3;3,-2,7];

x1=a+6*b;

x2=a-b+eye;

x3=a*b;

x4=a.*b;

x5=a^3;

x6=a.^3;

x7=a/b;

x8=b\a;

x9=[a,b];

x10=[a([1,3],:);b^2];

3、

a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25];

b=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11];

c=a*b;

f=size(c);

d=c(f(1)-2:f(1),f(2)-1:f(2));

结果

f = 5 3

d =520397

705557

890717

4、

a=100:999;

b=rem(a,21);

c=length(find(b==0));

结果

c = 43

四、实验小结

多练习,多动手,达到熟能生巧,灵活应用matlab做各种简单的

运算算法。

实验二 matlab 矩阵分析与处理

一、实验目的

1、掌握生成特殊矩阵的方法。

2、掌握矩阵分析的方法。

3、用矩阵求逆法解线性方程组。

二、实验内容

三、实验程序

1、

e=eye(3);

r=rand(3,2);

o=zeros(2,3);

s=diag([2,3]);

a=[e,r;o,s];

c=a^2;

b=[e,(r+r*s);o,s^2];

e,r,o,s,a,c,b

结果

e = 1 0 0

0 1 0

0 0 1

r = 0.9572 0.1419

0.4854 0.4218

0.8003 0.9157

o = 0 0 0

0 0 0

s = 2 0

0 3

a =1.000000 0.9572 0.1419

0 1.00000 0.4854 0.4218 00 1.0000 0.8003 0.9157 000 2.00000

0000 3.0000

c =1.000000 2.8715 0.5675

0 1.00000 1.4561 1.6870 00 1.0000 2.4008 3.6629 000 4.00000

0000 9.0000

b =1.000000 2.8715 0.5675

0 1.00000 1.4561 1.6870 00 1.0000 2.4008 3.6629 000 4.00000

0000 9.0000

2、

h=hilb(5);

p=pascal(5);

hh=det(h);

hp=det(p);

th=cond(h);

tp=cond(p);

h,p,hh,hp,th,tp

结果

hh = 3.7493e-012

hp =1

th = 4.7661e+005

tp =8.5175e+003

3、

a=fix(10*rand(5));

h=det(a);

trace=trace(a);

rank=rank(a);

norm=norm(a);

a,h,trace,rank,norm

结果

h = -3.2509e+004

trace =33

rank =5

norm =25.3208

4、

a=[-29,6,18;20,5,12;-8,8,5];

[v,d]=eig(a);

结果

a = -29 6 18

20 5 12

-8 8 5

5、

a=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];

b=[0.95,0.67,0.52];

x1=a\b;

b=[0.95,0.67,0.53];

x2=a\b;

c=cond(a);

结果

x1=1.2000

0.6000

0.6000

x2=1.2000

0.6000

0.6000

c =1.3533e+003

6、

a=[1,4,9;16,25,36;49,64,81];

b=sqrtm(a);

c=sqrt(a);

结果

b=0.6344 + 1.3620i0.3688 + 0.7235i0.7983 - 0.4388i 1.4489 + 1.1717i2.7697 + 0.6224i3.2141 - 0.3775i

4.3578 - 1.6237i

5.7110 - 0.8625i7.7767 + 0.5231i

c=1 2 3

4 5 6

7 8 9

四、实验小结

熟悉掌握利用zeros、ones、eye、rand、rands建立各种特殊矩阵,并练熟用冒号表达式建立矩阵并获得其子矩阵,学会计算矩阵的行列式值、迹、秩、范数及其特征值等。

实验三选择结构程序设计

一、实验目的

1、

2、

3、

4、 wit掌握建立和执行m文件的方法。掌握利用if语句实现选择结构的方法。掌握利用sch语句实现多分支选择结构的方法。掌握try语句的使用。

MATLAB编程作业

《Matlab 编程训练》 作业 专 业 学生姓名 班级 学 号 指导教师 完成日期

实训一 MATLAB 语言介绍和数值计算 1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存变量。 12 2sin851z e =+ . 2. 已知 1234413134787,2033657327A B --???? ????==???? ????-???? ,求下列表达式的值: (1) A+6*B 和A-B+I (其中I 为单位矩阵) A+6*B:

A-B+I: (2)A*B和A.*B A*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] c=A*B 结果: A.*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=A.*B 结果:

(3)A^3和A.^3 A^3程序: A=[12 34 -4;34 7 87;3 65 7] E=A^3 结果: A.^3程序: A=[12 34 -4;34 7 87;3 65 7] C=A.^3 (4)A/B及B\A A/B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] C=A/B 结果:

B\A程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=B\A 结果: (5)将矩阵C=B\A的右下角2*2子矩阵赋给D, 并(3)保存变量(mat文件)程序: A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; C=B*inv(A); D=C(2:3,2:3) 结果:

matlab基础练习题带答案

Matlab 基础练习题 常量、变量、表达式 1、 MATLAB 中,下面哪些变量名是合法的?( ) (A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。 (A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( ) (A )eps (B )none (C )zero (D )exp 4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放 一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MA TLAB 中,i 和j ( 对 ) 6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 7、 在MA TLAB 中,若想计算的5 1)3.0sin(21+= πy 值,那么应该在MA TLAB 的指令窗中 输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。 8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字 节。 9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。 数组 1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序 的逆序排列输出,应该使用下面的( )指令。 (A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB 的命令是( )。 (A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A) 3、 在MATLAB 中,用指令x=1:9生成数组x 。现在要把x 数组的第二和第七个元素都 赋值为0,应该在指令窗中输入( ) (A )x([2 7])=(0 0) (B )x([2,7])=[0,0] (C )x[(2,7)]=[0 0] (D )x[(2 7)]=(0 0) 4、 在MA TLAB 中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这时, 若在指令窗中输入指令b=A(:,2)',那么,MATLAB 输出的结果应该是( ) (A )b = -3 -2 -1 (B )b = -2 -1 0 1 (C )b = -5 -1 3 (D )b = -5 -2 1 4 5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应 该是L1 =___ 1 1 1 1 1 0 0 0 0___。

matlab课后习题解答第二章

第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象 3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+) 〖目的〗 不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+ c2=sym(3/7+ c3=sym('3/7+') c4=vpa(sym(3/7+) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = c2 = 37/70 c3 = c4 = Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1)

ans = a symvar(sym('z*exp(j*th)'),1) ans = z 5求符号矩阵???? ??????=3332 31 232221 131211 a a a a a a a a a A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。 〖目的〗 理解subexpr 指令。 〖解答〗 A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A); [IAs,d]=subexpr(IA,d) A = [ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA = a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs = [ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d = 1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 8(1)通过符号计算求t t y sin )(=的导数 dt dy 。(2)然后根据此结果,求- =0t dt dy 和2 π = t dt dy 。 〖目的〗 diff, limit 指令的应用。 如何理解运行结果。 〖解答〗 syms t

MATLAB程序设计作业

Matlab程序设计 班级 姓名 学号

《MATLAB程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot的原始数据、一次拟合曲线和三次拟合曲线,给出MATLAB代码和运行结果。 代码如下: x=[1,2,3,4,5,6,7,8,9,10]; y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]; plot(x,y); title('原始数据'); p=polyfit(x,y,1); q=polyval(p,x); figure,plot(x,q); title('一次拟合'); p=polyfit(x,y,2); q=polyval(p,x); figure,plot(x,q); title('二次拟合'); 运行结果如下:

1 2 3 4 5 6 7 8 9 10 12 3 4 5 6 7 8 原始数据 123 456789 102 2.5 3 3.54 4.5 55.56 6.57一次拟合 123456789 101 2 3 4 5 6 7 二次拟合 2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 代码如下: clear clc x=(0:0.01:3*pi); y=sin(x); plot(x,y); y1=(y>=0).*y; figure,plot(x,y1);

matlab课后习题及答案详解

第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径?

matlab课后答案完整版

ones表示1矩阵 zeros表示0矩阵 ones(4)表示4x4的1矩阵 zeros(4)表示4x4的0矩阵 zeros(4,5)表示4x5的矩阵 eye(10,10)表示10x10的单位矩阵rand(4,5)表示4x5的伴随矩阵 det(a)表示计算a的行列式 inv(a)表示计算a的逆矩阵 Jordan(a)表示求a矩阵的约当标准块rank(a)表示求矩阵a的秩 [v,d]=eig(a)对角矩阵 b=a’表示求a矩阵的转置矩阵 sqrt表示求平方根 exp表示自然指数函数 log自然对数函数 abs绝对值 第一章 一、5(1) b=[97 67 34 10;-78 75 65 5;32 5 -23 -59]; >> c=[97 67;-78 75;32 5;0 -12]; >> d=[65 5;-23 -59;54 7]; >> e=b*c e = 5271 11574 -11336 664 1978 3112 (2)a=50:1:100 二、1 、x=-74; y=-27; z=(sin(x.^2+y.^2))/(sqrt(tan(abs(x+y)))+pi) z = 2、a=::; >> b=exp*a).*sin(a+ 3、x=[2 4; 5]; y=log(x+sqrt(1+x.^2))/2 y =4、a*b表示a矩阵和b矩阵相乘 a.*b表示a矩阵和b矩阵单个元素相乘A(m,n)表示取a矩阵第m行,第n列 A(m,:)表示取a矩阵第m行的全部元素 A(:,n)表示取a矩阵的第n列全部元素 A./B表示a矩阵除以b矩阵的对应元素, B.\A等价于A./B A.^B表示两个矩阵对应元素进行乘方运算A.^2表示a中的每个元素的平方 A^2表示A*A 例:x=[1,2,3]; y=[4,5,6]; z=x.^y z= 1 3 2 729 指数可以是标量(如y=2).底数也可以是标量(如x=2) 5、a=1+2i; >> b=3+4i; >> c=exp((pi*i)/6) c = + d=c+a*b/(a+b) d = + 第二章 二、4、(1) y=0;k=0; >> while y<3 k=k+1; y=y+1/(2*k-1); end >> display([k-1,y-1/(2*k-1)]) ans = 第三章 二1(1)

matlab程序设计第三章课后习题答案

1. p138 第6题在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。 >> t=0:0.01:pi; >> x1=t; >> y1=2*x1-0.5; >> x2=sin(3*t).*cos(t); >> y2=sin(3*t).*sin(t); >> plot(x1,y1,'r-',x2,y2,'g-') >> axis([-1,2,-1.5,1]) >> hold on >> s=solve('y=2*x-0.5','x=sin(3*t)*cos(t)','y=sin(3*t)*sin(t)'); >> plot(double(s.x),double(s.y),'*'); 截图:

p366 第4题绘制极坐标曲线,并分析对曲线形状的影响。 function [ output_args ] = Untitled2( input_args ) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here theta=0:0.01:2*pi; a=input('请输入a的值:'); b=input('请输入b的值:'); n=input('请输入n的值:'); rho=a*sin(b+n*theta); polar(theta,rho,'k'); end 下面以a=1,b=1,n=1的极坐标图形为基础来分析a、b、n的影响。

对a的值进行改变:对比发现a只影响半径值的整倍变化 对b的值进行改变:对比发现b的值使这个圆转换了一定的角度

对n的值进行改变:对比发现当n>=2时有如下规律 1、当n为整数时,图形变为2n个花瓣状的图形 2、当n为奇数时,图形变为n个花瓣状的图形 分别让n为2、3、4、5

matlab习题及答案

2. 用MATLAB 语句输入矩阵A 和B 3.假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来, 赋给B 矩阵,用magic(8)A =命令生成A 矩阵,用上述命令检验一下结果是不是正确。 4.用数值方法可以求出∑=++++++==63 63622284212i i S Λ,试不采用循环的 形式求出和式的数值解。由于数值方法是采用double 形式进行计算的,难以保证有效位数字,所以结果不一定精确。试采用运算的方法求该和式的精确值。 5.选择合适的步距绘制出下面的图形。 (1))/1sin(t ,其中)1,1(-∈t ; (2))tan(sin )sin(tan t t -,其中),(ππ-∈t 6. 试绘制出二元函数2 2 2 2 )1(1)1(1),(y x y x y x f z +++ +-= =的三维图和三 视图 7. 试求出如下极限。 (1)x x x x 1)93(lim +∞ →; (2)1 1lim 0-+→→xy xy y x ; (3)2 2)()cos(1lim 2 2 220 0y x y x e y x y x +→→++- 8. 已知参数方程? ??-==t t t y t x sin cos cos ln ,试求出x y d d 和3 /2 2d d π=t x y 9. 假设?-=xy t t e y x f 0 d ),(2 ,试求2222 22y f y x f x f y x ??+???-?? 10. 试求出下面的极限。 (1)??????-++-+-+-∞→1)2(1 161141121lim 2222n n Λ; (2))131211( lim 2 222π πππn n n n n n n ++++++++∞ →Λ 11. 试求出以下的曲线积分。 (1)?+l s y x d )(22,l 为曲线)sin (cos t t t a x +=,)cos (sin t t t a y -=, )20(π≤≤t 。

matlab习题及答案2

MATLAB 基本运算 1.在MATLAB 中如何建立矩阵?? ?? ??194375,并将其赋予变量a ?>>a=[573;491] 2.在进行算术运算时,数组运算和矩阵运算各有什么要求? 进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数。 3.数组运算和矩阵运算的运算符有什么区别? 在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b 为矩阵乘,a.*b 为数组乘。 4.计算矩阵??????????897473535与??????????638976242之和。>>a=[535;374;798]; >>b=[242;679;836]; >>a+b ans = 7 779 1413151214 5.计算??????=572396a 与?? ????=864142b 的数组乘积。>>a=[693;275]; >>b=[241;468]; >>a.*b ans = 12 36384240 6.“左除”与“右除”有什么区别? 在通常情况下,左除x=a\b 是a*x=b 的解,右除x=b/a 是x*a=b 的解,一般情况下,a\b ≠b/a 。

7.对于B AX =,如果??????????=753467294A ,???? ??????=282637B ,求解X 。>>A=[492;764;357]; >>B=[372628]’; >>X=A\B X = -0.5118 4.0427 1.3318 8.已知:???? ??????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 >>a=[123;456;789]; >>a.^2 ans = 1 4916 253649 6481 >>a^2 ans = 30 364266 81961021261509.[]7.0802.05--=a ,在进行逻辑运算时,a 相当于什么样的逻辑量。 相当于a=[11011]。 10.在sin(x )运算中,x 是角度还是弧度? 在sin(x)运算中,x 是弧度,MATLAB 规定所有的三角函数运算都是按弧度进行运算。

matlab第二章习题答案

第一大题: (1) a = 7/3 b = sym(7/3) c = sym(7/3,'d') d = sym('7/3') v1=vpa(abs(a-d)) v2=vpa(abs(b-d)) v3=vpa(abs(c-d)) a = 2.3333 b = 7/3 c = 2.3333333333333334813630699500209 d = 7/3 v1 = 0.0 v2 = 0.0 v3 = 0.00000000000000014802973661668756666666667788716(2) a = pi/3 b = sym(pi/3) c = sym(pi/3,'d') d = sym('pi/3') v1=vpa(abs(a-d)) v2=vpa(abs(b-d)) v3=vpa(abs(c-d)) a = 1.0472 b = pi/3 c = 1.047197551196597631317786181171 d = pi/3 v1 = 0.0 v2 = 0.0 v3 = 0.00000000000000011483642827992216762806615818554 (3) a = pi*3^(1/3) b = sym(pi*3^(1/3)) c = sym(pi*3^(1/3),'d') d = sym('pi*3^(1/3)') v1=vpa(abs(a-d)) v2=vpa(abs(b-d)) v3=vpa(abs(c-d))

a = 4.5310 b = 1275352044764433/281474976710656 c = 4.5309606547207899041040946030989 d = pi*3^(1/3) v1 = 0.00000000000000026601114166290944374842393221638 v2 = 0.00000000000000026601114166290944374842393221638 v3 = 0.0000000000000002660111416629094726767991785515 第二大题: (1) c1=3/7+0.1 c1 = 0.5286 双精度 (2) c2=sym(3/7+0.1) c2 = 37/70 符号 (3) c3=vpa(sym(3/7+0.1)) c3 = 0.52857142857142857142857142857143 完整显示精度 第三大题: (1) findsym(sym('sin(w*t)'),1) ans = w (2) findsym(sym('a*exp(-X)' ) ,1) ans = a (3) findsym(sym('z*exp(j*theta)'),1) ans = z

实验二--MATLAB程序的设计(含实验报告)

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2→1 3→10→5→16→8→4→2→1 6→3→10→5→16→8→4→2→1

MATLAB基础教程 薛山第二版 课后习题答案

《MATLAB及应用》实验指导书《MATLAB及应用》实验指导书 班级:T1243-7 姓名:柏元强 学号:20120430724 总评成绩: 汽车工程学院 电测与汽车数字应用中心

目录 实验04051001 MATLAB语言基础 (1) 实验04051002 MATLAB科学计算及绘图 (18) 实验04051003 MATLAB综合实例编程 (31)

实验04051001 MATLAB语言基础 1实验目的 1)熟悉MATLAB的运行环境 2)掌握MATLAB的矩阵和数组的运算 3)掌握MATLAB符号表达式的创建 4)熟悉符号方程的求解 2实验内容 第二章 1.创建double的变量,并进行计算。 (1)a=87,b=190,计算 a+b、a-b、a*b。 clear,clc a=double(87); b=double(190); a+b,a-b,a*b (2)创建 uint8 类型的变量,数值与(1)中相同,进行相同的计算。 clear,clc a=uint8(87); b=uint8(190); a+b,a-b,a*b 2.计算:

(1) () sin 60 (2) e3 (3) 3cos 4??π ??? clear,clc a=sind(60) b=exp(3) c=cos(3*pi/4) 3.设2u =,3v =,计算: (1) 4 log uv v (2) () 2 2 e u v v u +- (3) clear,clc u=2;v=3; a=(4*u*v)/log(v) b=((exp(u)+v)^2)/(v^2-u) c=(sqrt(u-3*v))/(u*v) 4.计算如下表达式: (1) ()() 3542i i -+ (2) () sin 28i - clear,clc (3-5*i)*(4+2*i) sin(2-8*i)

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ?? ????++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g)

MATLAB习题及答案 (入门)

习题 1, 计算?? ?? ??=572396a 与??? ???=864142b 的数组乘积。 a.*b ans = 12 36 3 8 42 40 2, 对于B AX =,如果??????????=753467294A ,???? ??????=282637B ,求解X 。 inv(a)*b ans = -0.5118 4.0427 1.3318 3, 已知:??? ? ? ?????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 a.*a ans = 1 4 9 16 25 36 49 64 81 >> a^2 ans = 30 36 42 66 81 96 102 126 150

4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。(应用sin,cos,tan.cot) >> sin(x./pi) ans = -0.1242 0.9826 0.2465 >> cos(x./pi) ans = -0.9923 -0.1857 0.9692 >> tan(x./pi) ans = 0.1252 -5.2915 0.2543 >> cot(x./pi) ans = 7.9894 -0.1890 3.9321 5, 将矩阵?? ????=7524a 、??????=3817b 和??? ???=2695c 组合成两个新矩阵: (1)组合成一个4?3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵 元素,第三列为按列顺序排列的c 矩阵元素,即 ?? ??? ???? ???237 912685 574 [reshape(a,4,1),reshape(b,4,1),reshape(c,4,1)] ans = 4 7 5 5 8 6 2 1 9 7 3 2 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即

matlab程序设计作业

Matlab程序设计作业 姓名: 学号: 专业:

? MATLAB 程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y 二[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot 的原始数据、一次拟合曲线和三次拟合曲线,给出 原始曲线 MATLAB 代码和运行结果。 7 6 5 4 3 2 2 3 4 5 6 7 8 9 10

7 6.5 6 5.5 5 4.5 4 3.5 3 2.5 10 一次拟合 三次拟合

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2]; figure; plot(x,y) p1=polyfit(x,y,1); y1=polyval(p1,x); figure; plot(x,y1) p2=polyfit(x,y,3); y2=polyval(p2,x); figure; plot(x,y2) 2、在[0, 3n区间,绘制y二Sin(x)曲线(要求消去负半波,即(n 2n)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 x=0:pi/1000:3*pi; y=Sin(x); y1=(y>=0).*y; %消去负半波figure(1); plot(x,y1, 'b' ); a=mean(y1) %求出y1 的平均值 b=max(y1) %求出y1 的最大值b, 以及最大值在矩阵中的位置; d=x(find(y1==b)) >> ex1 a = 0.4243 b = 1 d = 1.5708 7.8540 >>

matlab程序设计例题及答案

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)

12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469

matlab课后答案

第二章习题 1.观察一个数(在此用@记述)在以下四条不同指令作用下的异同: a=@ b=sym(@) c=sym(@,’d’) d=sym(‘@’) 在此,@分别代表具体数值7/3,pi/3,pi*3^(1/3);而异同通过vpa(abs(a-d)),vpa(abs(b-d)),vpa(abs(c-d))等来观察。 a=7/3 b=sym(7/3) c=sym(7/3,'d') d=sym('7/3') vpa(abs(a-d)) vpa(abs(a-b)) vpa(abs(c-d)) a = 2.3333 b = 7/3 c = 2.3333333333333334813630699500209 d = 7/3 ans = 0.0 ans = 0.0 ans = 0.00000000000000014802973661668756666666667788716 a=pi/3 b=sym(pi/3) c=sym(pi/3,'d') d=sym('pi/3') vpa(abs(a-d)) vpa(abs(a-b)) vpa(abs(c-d)) a = 1.0472 b = pi/3 c = 1.047197551196597631317786181171

d = pi/3 ans = 0.0 ans = 0.0 ans = 0.00000000000000011483642827992216762806615818554 2.说出以下三条指令产生的结果各属于那种数据类型,是“双精度”对象,还是“符号”对象? 3/7+0.1,sym(3/7+0.1),vpa(sym(3/7+0.1)) a=3/7+0.1 b=sym(3/7+0.1) c=vpa(sym(3/7+0.1)) class(a) class(b) class(c) a = 0.5286 b = 37/70 c = 0.52857142857142857142857142857143 ans = double ans = sym ans = sym 3.在不加专门指定的情况下,以下符号表达中的那一个变量是独立自由变量。 sym(‘sin(w*t)’),sym(‘a*exp(-x)’),sym(‘z*exp(j*theta)’) syms t w x a j z theta a=sin(w*t) b=a*exp(-x) c=z*exp(j*theta) findsym(a) findsym(b) findsym(c) a = sin(t*w) b =

matlab练习题和答案

matlab练习题和答案 控制系统仿真实验 Matlab部分实验结果 目录 实验一 MATLAB基本操 作 ............................................................................................ 1 实验二 Matlab编程 .................................................................................................... 5 实验三Matlab底层图形控制 (6) 实验四控制系统古典分析.............................................................................................12 实验五控制系统现代分析 . (15) 实验六 PID控制器的设 计 ...........................................................................................19 实验七系统状态空间设计.............................................................................................23 实验九直流双闭环调速系统仿真 . (25) 实验一 MATLAB基本操作 1 用MATLAB可以识别的格式输入下面两个矩阵 1233,,1443678,i,,,,2357,,,,2335542,i,,,, A,1357B,,,2675342, i,,3239,,,,189543,,,,1894,, 再求出它们的乘积矩阵C,并将C矩阵的右下角2×3子矩阵赋给D矩阵。赋值完成后,调 用相应的命令查看MATLAB工作空间的占用情况。 A=[1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4];

MATLAB 实用教程 课后习题答案

第二章 1.计算复数3+4i与5-6i的乘积。 a=3+4i b=5-6i c=a*b 2.构建结构体Students,属性包含Name、age和Email,数据包括{’Zhang’,18,*‘Zhang@16 https://www.doczj.com/doc/483285340.html,’,’Zhang@https://www.doczj.com/doc/483285340.html,’+}、{’Wang’,21,[]}和{’Li’,[],[]},构建后读取所有Name属性值,并且修改’Zhang’的Age属性值为19。 Students(1).Age=18 Students(1).Email='zhang@https://www.doczj.com/doc/483285340.html,','zhang@https://www.doczj.com/doc/483285340.html,' Students(2).Name='Wang' Students(2).Age=21 Students(2).Email=[] Students(3).Name='Li' Students(3).Age=[] Students(3).Email=[] https://www.doczj.com/doc/483285340.html, Student(1).Age(1)=19 Student.Age 3.用满矩阵和稀疏矩阵存储方式分别构造下属矩阵: A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0] A=[0 1 0 0 0;1 0 0 0 0;0 0 0 0 0;0 0 0 1 0] S=sparse(A) S=sparse([2,1,4],[1,2,4],[1,1,1],4,5) 4.采用向量构造符得到向量[1,5,9....,41]. A=1:4:41 5.按水平和竖直方向分别合并下述两个矩阵:A=[1 0 0;1 1 0;0 0 1],B=[2 3 4;5 6 7;8 9 10] A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B] 6.分别删除第五题两个结果的第2行。 A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B] C(2,:)=[] D(2,:)=[] 7.分别将第5题两个结果的第2行最后3列的数值改为[11 12 13]。 A=[1 0 0;1 1 0;0 0 1] B=[2 3 4;5 6 7;8 9 10] C=[A B] D=[A;B]

Matlab习题与答案

实验二二维/三维数据的可视化 一、实验目的 熟悉掌握简单的图形绘制函数;掌握MATLAB常用的二维、三维图形及其他图形绘制函数的使用方法;熟悉图形句柄的使用。 二、实验环境 硬件环境:计算机一台 软件环境:Matlab 6.0 三、实验内容 作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三维图形函数。由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。 1、二维绘图 (1)plot函数 函数格式:plot(x,y) 其中x和y为坐标向量 函数功能:以向量x、y为轴,绘制曲线。 例1 在区间0≤X≤2 ,绘制正弦曲线Y=SIN(X),其程序为: x=0:pi/100:2*pi; y=sin(x); plot(x,y) 例2同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X 轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。 例3 用不同线型和颜色重新绘制Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi; y1=sin(x); y2=cos(x);

plot(x,y1,'go',x,y2,'b-.') 其中参数'go'和'b-.'表示图形的颜色和线型。g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。 在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。 title(‘加图形标题'); xlabel('加X轴标记'); ylabel('加Y轴标记'); text(X,Y,'添加文本'); 例4 在坐标范围0≤X≤2π,-2≤Y≤2内重新绘制正弦曲线,其程序为: x=linspace(0,2*pi,60);生成含有60个数据元素的向量X y=sin(x); plot(x,y); axis ([0 2*pi -2 2]);设定坐标轴范围 2、subplot函数 (1)subplot(m,n,p) 该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。 例5 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi,60); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); eps为系统内部常数 ct=cos(x)./(sin(x)+eps); subplot(2,2,1); 分成2×2区域且指定1号为活动区 plot(x,y); title('sin(x)'); axis ([0 2*pi -1 1]); subplot(2,2,2); plot(x,z); title('cos(x)'); axis ([0 2*pi -1 1]); subplot(2,2,3); plot(x,t); title('tangent(x)'); axis ([0 2*pi -40 40]);

相关主题
文本预览
相关文档 最新文档