文档库 最新最全的文档下载
当前位置:文档库 › (完整word版)matlab实验指导答案详解(非常详细正确)

(完整word版)matlab实验指导答案详解(非常详细正确)

(完整word版)matlab实验指导答案详解(非常详细正确)
(完整word版)matlab实验指导答案详解(非常详细正确)

实验一 MATLAB 工作环境熟悉及简单命令的执行

一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单

(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作

空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。

三、实验步骤:

1、启动MATLAB ,熟悉MATLAB 的桌面。

2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667

(2)>>area=pi*2.5^2 area = 19.6350

(3)已知x=3,y=4,在MATLAB 中求z :

()

2

3

2y x y x z -= >>x=3 >>y=4

>>z = x ^2 * y ^3 / (x - y) ^2 z = 576

(4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。

m1=????

?

????

???11514412679810115133216 执行以下命令

>>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6

>>m1( : , 3 ) ans =3 10 6 15

>>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6

>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34

(5)执行命令>>help abs

查看函数abs 的用法及用途,计算abs( 3 + 4i ) (6)执行命令

>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)

(6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。

四、思考题

1、以下变量名是否合法?为什么? (1)x2 合法

(2)3col 不合法,首字符是数字 (3)_row 不合法,首字符必须是字母

(4)for 不合法,for 为MATLAB 的保留关键字 2、求以下变量的值,并在MATLAB 中验证。 (1)a = 1 : 2 : 5 ;

a = 1 3 5 (2)

b = [ a' a' a' ] ;

b = 1 1 1 3 3 3 5 5 5 (3)

c = a + b ( 2 , : )

c =4 6 8

实验二 MATLAB 语言矩阵运算

一、实验目的:掌握基本的矩阵运算及常用的函数。 二、实验内容:

??????=654321a ??????-=531142b ??

??

?

?????-=201c ??????????=063258741d

1、下列运算是否合法,为什么?如合法,结果是多少? (1) result1 = a' (2) result2 = a * b

不合法,两矩阵的内阶不相等。

(3) result3 = a + b (4) result4 = b * d

(5) result5 = [b ; c' ] * d (6) result6 = a . * b (7) result7 = a . / b (8) result8 = a . * c

不合法,两矩阵的维数不相等,点乘相求两矩阵的维数相同。

(9) result9 = a . \ b (10) result10 = a . ^2 (11) result11 = a ^2

不合法,a 矩阵不是方阵,方阵才能取平方。

(12) result12 = 2 . ^ a

以上运算的关键不是结果是多少,而是结果怎么得来的,比如result5 = [b ; c' ] * d ,要学会将其分解后去理解,可在命令窗口输入以下语句: >>c'

>>t=[b;c'] >>r5=t * d

2、用MATLAB 求下面的的方程组。

(1)????

?

???????-=??????????????????????

???----01741323151122231592127

4321x x x x A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13] b=[4;7;-1;0] x=A\b

x = 0.4979 0.1445 0.0629 -0.0813

(2)???????=-++=--=-++=++5

6533332821

w z y x w y x w z y x z y x A=[1,1,1,0;1,2,1,-1;2,-1,0,-3;3,3,5,-6]

b=[1;8;3;5]

xyzw=inv(A)*b xyzw= 1.0000 5.0000 -5.0000 -2.0000

3、已知????

?

????

???----=1323151122231592127

A A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13]

(1)求矩阵A 的秩(rank) >>rank(A)

(2)求矩阵A 的行列式(determinant) >>det(A)

(3)求矩阵A 的逆(inverse) >>inv(A)

(4)求矩阵A 的特征值及特征向量(eigenvalue and eigenvector) >>[v,d]=eig(A)

该题目要求大家学会使用MATLAT 的帮助系统,一是知道函数名,怎样查函数用法,二是不知道函数名,怎样查函数名及其用法。 4、关系运算与逻辑运算 已知a=20,b=-2,c=0,d=1

(1) r1 = a > b

(2) r2 = a > b & c > d (3) r3 = a == b* (-10) (4) r4 = ~b | c

r1 = 1,r2 = 0,r3 = 1,r4 = 0

三、思考题

10991010

10

22222++++==

---=∑ n n y ,求y=?(用format long g 查看y 的

值)

方法一: n=-10:1:10 format long g x=2 .^n y=sum(x)

方法二: y=0;

for t=-10:10 y=y+2^t; end y 方法三

y=0; t=-10 while t<=10 y=y+2^t; t=t+1; end y

实验三 选择结构程序设计及调试

一、实验目的:掌握利用if 、switch 语句编写选择结构程序,学会MATLAB 程序编辑、

运行及调试方法。

二、实验内容:

1、求分段函数的值。

??

???≥--<≤+-<-+=515

0650622

2x x x x x x x x x y

用if 语句实现,算出下列表中x 对应的y 值。

X -5 0 2 5 8 y

14

6

19

55

clc clear

x=-5 % x=input('请输入x 的值') if x<0

y=x^2+x-6; elseif x>=0&x<5

y=x^2-5*x+6;

else

y=x^2-x-1;

end

y

2、分别用if和swith语句实现,将百分制成绩转换为成绩等级A、B、C、D、E。其中[90~100]分为A,[80~90)分为B,[70~80)分为C,[60~70)分为D,60分以下为E。对超出百分制范围的成绩,给出错误提示信息。

clc

clear

s=input('请输入百分制成绩:');

if s<0|s>100

g='ERROR';

elseif s>=90&s<=100

g='A';

elseif s>=80&s<90

g='B';

elseif s>=70&s<80

g='C';

elseif s>=60&s<70

g='D';

else

g='E';

end

g

clc

clear

s=input('请输入百分制成绩:');

switch floor(s/10)

case 9

g='A';

case 8

g='B';

case 7

g='C';

case 6

g='D';

case num2cell(0:5)

g='E';

otherwise

if s==100

g='A';

g='ERROR';

end

end

g

3、程序的调试(参考P77):在以上编写的程序中设置断点,控制程序单步运行,观察程序的执行及变量值的变化情况。

三、思考题

设计程序,产生两个两位随机整数,再输入一个运算符号,完成成两位数的加、减、乘、除四则运算,并显示相应的结果。

clc

clear

x1=10+floor(90*rand(1))

x2=10+floor(90*rand(1))

p=input('输入+-*/运算符:','s');

switch p

case '+'

y=x1+x2;

case '-'

y=x1-x2;

case '*'

y=x1*x2;

case '/'

y=x1/x2;

otherwise

y='error';

end

y

实验四循环结构程序设计及调试

一、实验目的:掌握MATLAB程序编辑、运行及调试方法。

二、实验内容:

1、启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器

(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。注:数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:

2→1

3→10→5→16→8→4→2→1

6→3→10→5→16→8→4→2→1

运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

%classic "3n+1" problem from number theory.

n=1 %n等于1,2,3,5,7等数

a=n;

if rem(n,2)==0 n=n/2; else

n=3*n+1; end a=[a,n]; end a

2、根据

2222213121116n

x ++++= ,当n 分别取100、1000、10000时,求x 的值

分别是多少?

clc clear y=0; n=100 for k=1:n

y=y+1/k^2; end

x=sqrt(6*y)

3、编程求满足∑=>m

i i 1

100002的最小m 值。 以下是三种方法及结果验证方法。

clc clear

sum_x=0; n=0;

while sum_x<=1e4 n=n+1; x=2^n;

sum_x=sum_x+x; end re1=n

sum_x=0; n=1;

while sum_x<=1e4 x=2^n;

sum_x=sum_x+x; n=n+1; end

re2=n-1

sum_x=0; n=1; while 1 x=2^n;

sum_x=sum_x+x; if sum_x>1e4 break ; end n=n+1; end re3=n

echo on

sum(2.^[1:12]) sum(2.^[1:13]) echo off

三、思考题

已知y 和t 的函数关系:!20/...!3/!2/1)(2032t t t t t y +++++=求

下面表格中与t 对应的y 值

t 0.2 0.4 0.6 0.8 1.0 y

clc clear y=1 t=1; f=1;

for n=1:20 f=f*n; y=y+t^n/f end y

实验五 函数的编写及调试

一、实验目的:掌握MATLAB 函数的编写及调试方法。 二、实验内容:

1、编写一个函数,计算下面函数的值,给出x 的值,调用该函数后,返回y 的值。

function [y]=myfun1(x)

??

???>+-≤<≤=3

,630,

0,sin )(x x x x x x x y

选择一些数据测试你编写的函数。 function [y]=myfun1(x) if x<=0

y=sin(x); elseif x<=3 y=x; else

y=-x+6; end

2、编写一个函数求向量中元素的平均值、最大值、最小值、均方根值。

function [m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(Root

Mean Square)的计算公式为:

∑==

N

i i

x

N

rms 1

21

用下面数据测试你写的函数: (1)x=sin(0:0.01:6*pi)

(2)x=rand(1,200),得到的x 为200个(0,1)之间均匀分布的随机数。 function [m_x,max_x,min_x,rms_x]=myfun2(x) % m_x=mean(x); % max_x=max(x); % min_x=min(x);

% rms_x=sqrt(sum(x.^2)/length(x)); N=length(x); sum_x=0; sum_x2=0; max_x=x(1); min_x=x(1); for k=1:N

sum_x=sum_x+x(k);

sum_x2=sum_x2+x(k)^2; if x(k)>max_x max_x=x(k); end

if x(k)

m_x=sum_x/N;

rms_x=sqrt(sum_x2/N);

3、编写一个函数,给出一个向量],,[21n x x x x

=,生成如下范德蒙矩阵。

function [v]=myvander(x)???

??

??

?????????---1

1211

2

2

22121

111

n n n n n n x x x x x x x x x 例如:>>v=myvander([2 3 4 5])

得v=

?????

???????12564278251694543211

11

生成一些数据测试你写的函数。 function [v]=myvander(x) N=length(x); for k=1:N

v(k,:)=x.^(k-1); end

三、思考题

编写程序,用如下迭代公式求

a

,a 的值分别为:3,17,113。迭代的终止条件为

5n 1n 10x x -+≤-,迭代初值0.1x 0=,迭代次数不超过100次。分别对迭代结果和

准确值进行比较,并统计迭代次数。

n

n 1n 222x 2a 2x x a x x 2a x +=

?+=?=+

clc clear

a=input('请输入a='); x0=1; for n=1:100

x1=x0/2+a/(2*x0); if (abs(x1-x0)<=1e-5) break end x0=x1; end

disp('sqrt(a)数值解为:') x1

disp('迭代次数:') n

disp('sqrt(a)的准确解为:') sqrt(a)

请输入a=3

sqrt(a)数值解为: x1 =

1.7321 迭代次数:5

sqrt(a)的准确解为: ans =

1.7321

实验六 MATLAB 的绘图

1、在同一坐标系下绘制下面三个函数在t ∈[0,4π]的图象。

)

sin(41.0321t e y t

y t y t -==

t=0:1e-2:4*pi; y1=t;

y2=sqrt(t);

y3=4*pi*exp(-0.1*t).*sin(t); plot(t,y1,'r',t,y2,'g',t,y3,'b'); grid

xlabel('t / s')

ylabel('y1 y2 y3')

legend('t','sqrt(t)','4*pi*exp(-0.1*t).*sin(t)');

2、编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图象。

??

???>+-≤<≤=3

,630,

0,sin )(x x x x x x x y

x=-6:0.1:6; % 设定自变量x 的取值范围 leng=length(x); % 计算向量x 的长度 for m=1:leng % 计算函数值 y(m)=myfun1(x(m)); end

plot(x,y),grid %绘制函数曲线 xlabel('x'),ylabel('y')

3、用compass 函数画下面相量图

ua = 1 ; ub = cos(-2*pi/3)+sin(-2*pi/3)*i ; uc=cos(2*pi/3)+sin(2*pi/3)*i; compass([ua,ub,uc,ua-ub,ub-uc,uc-ua])

0.5

1 1.5

2

30

21060

240

90

270

120

300

150330

1800

4、三维空间曲线绘制z=0:0.1:4*pi;

x=cos(z); y=sin(z); plot3(x,y,z)

5、用mesh 或surf 函数,绘制下面方程所表示的三维空间曲面,x 和y 的取值范围设为[-3,3]。

10

102

2y x z +-=

[x,y]=meshgrid(-3:0.5:3) z=-x.*x/10+y.*y/10; mesh(x,y,z); figure

surfc(x,y,z);

附:画抛物面10

102

2y x z += theta=linspace(0,2*pi,60) R=linspace(0,5,20); X1=R'*cos(theta); Y1=R'*sin(theta);

Z1=X1.*X1/10+Y1.*Y1/10; mesh(X1,Y1,Z1) axis square

三、思考题

用对分法求解方程x e x

sin 2=-在[0,1]内的解,并验证,在程序中统计出对分次

数。

提示:先将原方程转化成

0sin 2)(=-=-x e x f x 的形式。

对分法的基本思想是:一个一元方程f(x)=0,若f(x1)*f(x2)<0,则在[x1,x2]区间内有实数解。取该区间的中点xm=(x1+x2)/2,判定f(x1)和f(x2)二者中哪一个与f(xm)异号,若f(x1)*f(xm)<0,则解存在的区间缩小为[x1,xm],否则解存在的区间缩小为[xm,x2]。重复这样的步骤,直到区间的长度小于一个可以接受的小数(比如1e-10),则认为中点即是原方程的解。 clc clear

x1=0;x2=1; len=x2-x1; n=0;

while len>1e-10

y1=2*exp(-x1)-sin(x1); y2=2*exp(-x2)-sin(x2); xm=(x1+x2)/2;

ym=2*exp(-xm)-sin(xm); if y1*ym<0 x2=xm;

elseif y2*ym<0 x1=xm; end

len=x2-x1; n=n+1; end

format long xm,ym,n

实验七 MATLAB 数值运算

一、实验目的:掌握MATLAB 常用的数值运算函数。 二、实验内容:

1、求代数方程012927432

3

4

5

=+++++x x x x x 的5个根,并将其用星号(*)标记在复平面图上。(用roots 和plot 函数)。 p=[3 4 7 2 9 12]; r=roots(p) plot(r,'*'); grid

xlabel('Real Axis') ylabel('Imag Axis') r =

-0.8612 + 1.4377i -0.8612 - 1.4377i 0.6737 + 1.0159i 0.6737 - 1.0159i

-0.9583

-1

-0.5

00.5

1

-1.5

-1-0.500.5

11.5Real Axis

I m a g A x i s

2、求代数方程015=-x 的5个根,并将其用星号(*)标记在复平面图上。(用roots 和

plot 函数)。

p=[1 0 0 0 0 -1]; r=roots(p) plot(r,'*'); axis equal grid

3、求下面函数在[0.5,4]区间内的过零点。(用fzero 函)

x x x x x x x f 1

)cos(5)sin(2)(23+

+-=

fplot('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[0.5,4]) x1=fzero('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[0.5,2]) x2=fzero('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[2,4]) x1 = 1.5117 x2 = 2.6095

1234

-20

02040

6080x

y

4、

已知R=50欧姆,U=4V ,二极管D 正向电流与电压的关系为:

???

? ??-=1KT q U s d d e

I I

其中:

U d 为二极管正向电压

I s 为反向饱合电流,取10-12A K 为玻尔茨曼常数,1.38*10-23

T 为绝对温度,取300开尔文(27摄氏度) q 为电子电荷1.6*10-19C

求此电路中的电流I d 和二极管正向电压U d (要求用fsolve 函数求解) R=50;U=4;Is=1e-12;K=1.38e-23;T=300;q=1.6e-19; %Ud+Id*R-U=0;

%Id-Is*exp(Ud*q/(K*T)-1)=0; Ud=0:0.01:0.7;

Id=Is*exp(Ud*q/(K*T)-1); Ud1=0:0.01:4; Id1=(U-Ud1)/R plot(Ud,1000*Id,'r') hold on

plot(Ud1,1000*Id1,'b') grid hold off

legend('二极管伏安特性','负载线') x=fsolve(@UdId,[1 0.05])

function f=UdId(x)

R=50;U=4;Is=1e-12;K=1.38e-23;T=300;q=1.6e-19; Ud=x(1);Id=x(2); f=[Ud+Id*R-U

Id-Is*exp(Ud*q/(K*T)-1)];

x =

0.6707 0.0666 Ud Id

5、实验数据处理:已知某压力传感器的测试数据如下表

p 0.0 1.1 2.1 2.8 4.2 5.0 6.1 6.9 8.1

9.0 9.9 u 10 11 13 14 17 18 22 24

29 34 39

p 为压力值,u 为电压值,试用多项式d cp bp ap p u +++=23)

(来拟合其特

性函数,求出a,b,c,d ,并把拟合曲线和各个测试数据点画在同一幅图上。 p=[0.0 1.1 2.1 2.8 4.2 5.0 6.1 6.9 8.1 9.0 9.9]; u=[10 11 13 14 17 18 22 24 29 34 39]; plot(p,u,'r+')

abcd=polyfit(p,u,3) p1=0:0.1:10;

u1=polyval(abcd,p1); hold on

plot(p1,u1,'b'); grid hold off

axis([-1 11 8 41]); xlabel('p'); ylabel('u');

legend('p-u','u(p)=a*p^3+b*p^2+c*p+d',2)

2

4

6

8

10

10

15

20

25

30

35

40

p

u

p-u

u(p)=a*p 3+b*p 2+c*p+d

实验八 MATLAB 应用

1、用Simulink 求解下图所示电路0~100微秒内的响应。已知R=6*10-4

欧,C=1700微法,L=6*10-9享,u c (0)=15kV 。

02

=++i dt

di

RC dt i d LC

??????

?-=-=)

(11Ri u L

dt di i C dt du c c

???

?

?

?

???

-==-=??Ri u u d u L t i d i C t u c L t L t c 00)(1)()(1)(ξ

ξξξ

S c o p e 1 S c o p e

1

s

I n t e g r a

t o

1

s

I n t e g r a t o R G a i n 2

1/L

G a i n 1 -1/C G a i n

UL i

i Uc

Uc

● 模块参数设置:

Integrator1的Initial condition:15kV

在命令窗口为R,L,C 赋值。

● 仿真参数设置如下:

Start time:0

Stop time:100e-6

Solver Type:Variable-step Solver:ode45 Max step size:1e-7 Min step size:auto Initial step size:auto Relative tolerance:1e-3 Absolute tolerance:1e-6

实验四 MATLAB 数值运算

一、实验目的:掌握MATLAB 常用的数值运算函数。 二、实验内容:

1、求代数方程012927432

3

4

5

=+++++x x x x x p=[3 4 7 2 9 12] roots(p) ans =

-0.8612 + 1.4377i -0.8612 - 1.4377i 0.6737 + 1.0159i 0.6737 - 1.0159i -0.9583

2、求代数方程015=-x

p2=[1 0 0 0 0 -1] roots(p2) ans =

-0.8090 + 0.5878i -0.8090 - 0.5878i 0.3090 + 0.9511i 0.3090 - 0.9511i 1.0000

3、求函数)x

x x x x x x f 1

)cos(5)sin(2)(23+

+-=在[0.5,4]区间内的过零点。 fplot('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[0.5,4])

0.5

1 1.5

2 2.5

3 3.54

-1001020304050607080

fzero('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[0.5,2])

fzero('x^3-2*x^2*sin(x)+5*x*cos(x)+1/x',[2,4]) x1 = 1.5117 x2 = 2.6095

4、

已知R=50欧姆,U=4V ,二极管D 正向电流与电压的关系为:

???

? ??-=1KT q U s d d e

I I

其中:

U d 为二极管正向电压

I s 为反向饱合电流,取10-12A K 为玻尔茨曼常数,1.38*10-23

T 为绝对温度,取300开尔文(27摄氏度) q 为电子电荷1.6*10-19C

求此电路中的电流I d 和二极管正向电压U d 解:列电路方程:

?????=-+=-???

?

?-0

*01U U R I e I I d d KT q U s d

d

(1)估计解的位置

R=50;U=4;Is=1e-12;K=1.38e-23;T=300;q=1.6e-19; %Ud+Id*R-U=0;

%Id-Is*exp(Ud*q/(K*T)-1)=0; Ud=0:0.01:0.7;

Id=Is*exp(Ud*q/(K*T)-1); Ud1=0:0.01:4; Id1=(U-Ud1)/R plot(Ud,1000*Id,'r') hold on

plot(Ud1,1000*Id1,'b') grid hold off

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

MATLAB全部实验及答案

MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c

(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc

matlab实验五答案1

实验五 1、编写程序,该程序在同一窗口中绘制函数在 []0,2π之间的正弦曲线和余弦曲线,步长 为200/π,线宽为2个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记并标注sin(x)=cos(x);通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。%x=linspace(0,2*pi,1000);x=[0:pi/200:2*pi]sinx =sin(x);cosx =cos(x); k=find(abs(sinx-cosx)<1e-2);x1=x(k); plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x1,sin(x1),'r*')xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)'); title('正弦-余弦曲线'); text(x1+0.1,sin(x1),'sin(x)=cos(x)');legend('sin(x)','cos(x)'); 1 2 34 5 6 7 x:(0-2π) y :s i n (x )/c o s (x ) 正弦-余弦曲线 2、绘制图像:双曲抛物面:22 x y z =- ,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。 [X,Y]=meshgrid(-16:0.4:16,-4:0.1:4);Z =X.^2/16-Y.^2/4; subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth =0,elevation =180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth =

Matlab实验五分支结构程序设计答案

实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');

elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end

MATLAB)课后实验答案

实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 012 2sin 851z e =+ (2) 21ln(2 z x =,其中2 120.45 5i x +??=? ?-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022 a a e e a z a a --+= ++=--L (4) 22 42011 122123t t z t t t t t ?≤

4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。解:(1) 结果: (2). 建立一个字符串向量例如: ch='ABC123d4e56Fg9';则要求结果是:

实验二 MATLAB 矩阵分析与处理 1. 设有分块矩阵33322322E R A O S ?????? =? ??? ,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22 E R RS A O S +?? =???? 。 解: M 文件如下; 5. 下面是一个线性方程组: 1 231 1 12340.951110.673450.5211145 6x x x ?? ??????????????=??? ?????????????????? ? ch = 123d4e56g9

(1) 求方程的解。 (2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。 (3) 计算系数矩阵A 的条件数并分析结论。 解: M 文件如下: 实验三 选择结构程序设计 1. 求分段函数的值。 2226035605231x x x x y x x x x x x x ?+-<≠-? =-+≤<≠≠??--? 且且及其他 用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 解:M 文件如下:

实验5 Matlab程序设计1

实验5 Matlab 程序设计1 实验目的: 1、 掌握建立和执行M 文件的方法; 2、 掌握实现选择结构的方法; 3、 掌握实现循环结构的方法。 实验内容: 1. 从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然 后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。 2. 求分段函数的值。 ,x x x x y x x x x x x x ?+- <≠-?=-+ ≤<≠≠??-- ?2226035605231且且及其他 用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。请输入x 的值 x=input('请输入x 的值'); if x<0&x~=-3 y=x*x+x-6; elseif 0<=x&x<5&x~=2&x~=3 y=x*x-5*x+6; else y=x*x-x-1; end y

second 请输入x的值-5 y = 14 second 请输入x的值-3 y = 11 >> second 请输入x的值0 y = 6 >> second 请输入x的值1

y = 2 >> second 请输入x的值2 y = 1 >> second 请输入x的值2.5 y = -0.2500 >> second 请输入x的值3

5 >> second 请输入x的值5 y = 19 >> 3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89 分为B,70~79分为C,60~69分为D,60分以下为E。 要求: (1)分别用if语句和swich语句实现。 (2)grade=input('input grade:'); (3)if grade<=100&grade>=90 (4)level='A'; (5)elseif grade<=89&grade>80 (6)level='B'; (7)elseif 70<=grade&grade<=79

Matlab实验第一次实验答案

实验一Matlab使用方法和程序设计 一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找sqrt(开方)函数的使用方法; 解:sqrt Square root Syntax B = sqrt(X) Description B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Remarks See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i

1.0000 1.4142 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B 解:A=[1 2;3 4 ]; B=[5 5;7 8 ]; A^2*B (2)矩阵除法 已知A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B 解:A=[1 2 3;4 5 6;7 8 9 ]; B=[1 0 0;0 2 0;0 0 3 ]; A\B,A/B (3)矩阵的转置及共轭转置

MATLAB实验题答案

1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000>> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A

matlab所有实验及答案

实验二 习题 1、 矩阵Y= ???? ? ???? ???3472123100451150425 ,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。取出子矩阵?? ? ? ??21301,并求该矩阵的维数。 解:命令为: Y=[5,2,4;0,15,1;45,100,23;21,47,3] Y(2,3) Y(10) sub2ind([4 3],2,3) [i,j]=ind2sub([4 3],10) find(Y==100) sub2ind([4 3],3,2) B=Y(2:2:4,3:-2:1) 或 B=Y([2 4],[3 1]) [m n]=size(Y) 2、 建立一个数值范围为0—100内4*5的整数随机矩阵。 求出大于50的元素的位置。 解:命令为: G=int8(100*rand(4,5)) find(G>50) 3、 已知矩阵A=[1 0 -1 ;2 4 1; -2 0 5],B=[0 -1 0;2 1 3;1 1 2] 求2A+B 、A 2-3B 、A*B 、B*A 、A .*B ,A/B 、A\B 解:命令为: A=[1 0 -1 ;2 4 1; -2 0 5] B=[0 -1 0;2 1 3;1 1 2] E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B 4、 利用函数产生3*4阶单位矩阵和全部元素都为8的 4*4阶矩阵,并计算两者的乘积。 解:命令为: A=eye(3,4) B=8*ones(4) C=A*B 5、 创建矩阵a=????? ???????------7023021.5003.120498601 ,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b 构成矩阵d ,计算a*b 、c

MATLAB实验五 函数文件

MATLAB实验报告 学院:光电学院 班级:073-1 姓名:刘颖 学号:200713503117

实验五 函数文件 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 程序设计: function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end 运行结果: >> num(5i) e = 0.2837 - 0.9589i ln = 1.6094 + 1.5708i s = 0 +74.2032i c = 74.2099 ans = 0.2837 - 0.9589i 2.一物理系统可用下列方程组来表示: ??? ? ??? ???????= ?????? ??? ??? ???????????? ??----g g m m N N a a m m m m 2121212 111001cos 0 0sin 00cos 0 sin 0sin cos θ θθ θθθ 从键盘输入 m 1 、 m 2 和θ的值,求 N a a 121、、和 N 2 的值。其中g 取9.8,输入θ时以角度为单位。 程序设计: 函数文件in.m: function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8; A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1]; C=[0;m1*g;0;m2*g]; B=inv(A)*C; a1=B(1); a2=B(2); N1=B(3); N2=B(4); end 调用in.m 的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t) 运行结果: a1 = 6.5333 a2 = 1.8860 N1 = 7.5440 N2 = 26.1333 4.设 f(x)= 01 .01 1 .01 ) 3() 2(4 2 +++--x x , 编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计: 函数文件fx.m: function A=fx(x) A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end 调用fx.m 的命令文件: >> A=fx([1 2;2 3;4 3]) 运行结果: A = 0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 5.已知y= ) 20()30() 40(f f f + (1)当f(n)=n+10ln(n 2+5)时,求y 的值。

matlab实验四及其答案

实验四GUI 设计专业 学号姓名成绩电气工程及其自 动化201409140305 杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入 a , b , c 的值和x 取值范围(最大值和最小值)。 回调函数的编写: a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y); 设计的运行界面截图:

2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x 3.的波形图。回调函数的编写: x=-5:0.1:5 plot(x,sin(x)) x=-5:0.1:5 plot(x,cos(x))

x=-5:0.1:5 y=x.^3 plot(x,y)

设计的运行界面截图: 3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。回调函数的编写: yanse=get(handles.popupmenu1,'value'); switch yanse case1 set(gcf,'color','r'); case2 set(gcf,'color','y'); case3 set(gcf,'color','g'); end 设计的运行界面截图:

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

(完整版)Matlab实验5选择结构程序结构

实验五、选择与循环结构 一、实验目的: 1、 掌握建立和执行M 文件的方法。 2、 掌握利用if 语句实现选择结构的方法。 3、 掌握利用switch 语句实现多分支选择结构的方法。 4、 掌握try 语句的使用。 5、 掌握利用for 语句实现循环结构的方法。 6、 掌握利用while 语句实现循环结构的方法。 7、 熟悉利用向量运算来代替循环的操作方法。 二、实验内容: 1、 列分段函数的值。 ?? ???--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y 要求: (1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 提示:x 的值从键盘输入,可以是向量。 %homework_5_1_1.m x=input('请输入x 的值:x='); if (x<0 & x~=-3) y= x.*x + x - 6 elseif (x>=0 & x<10 & x~=2 & x~=3) y=x.*x-5.*x+6 else y=x.*x-x-6 end >> homework_5_1 请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] y = -5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000 (2) 用逻辑表达式实现上述函数。 %homework_5_1_2.m x=input('请输入x 的值:x=') y=(x<0 & x~=-3).*(x.*x+x-6)... +(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)... +(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6) >> homework_5_1_2 请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0] x = -0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y = -6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.0000

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

MATLAB实验题目及答案

实验二一维二维数组的创建和寻访 一、实验目的 1、掌握一维数组、二维数组创建和寻访的几种方法。 2、区别数组运算和矩阵运算的差别。 3、熟悉执行数组运算的常用数组操作函数。 4、掌握数组运算中的关系和逻辑操作及常用的关系、逻辑函数。 5、掌握“非数”、“空”数组在MA TLAB中的应用。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第三章MATLAB的数值数组及向量化运算功能。 四、实验内容及实验步骤 1、一维数组的创建方法有哪几种?举例说明。 答:一维数组的创建方法有: ①递增/递减型一维数组的创建:冒号生成法:x=a:inc:b 线性(或对数)定点法:x=linspace(a,b,n),x=logspace(a,b,n) ②逐个元素输入法:如x=[0.1,sin(pi/5),-exp(-3),-2*pi] ③运用MA TLAB函数生成法:例ones,rand等。 2、输入以下指令,并写出运行结果。本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。 A=zeros(2,6) %创建(2×6)的全零数组 A(:)=1:12 %赋值号左边:单下标寻访(2×6) 数组A的全部12个元素 %赋值号右边:拥有12个元素的一维数组 A(2,4) %双下标:A数组的第2行第4列元素 A(8) %单下标:数组A的第8个元素 A(: , [1,3]) %双下标:显示A的“第1列和第3列上全部行的元素” A([1, 2, 5, 6]') %单下标:把A数组第1,2,5,6个元素排成列向量 A(: , 4:end) %双下标:显示A的“从第4起到最后一列上全部行的元素” %在此end用于“列标识”,它表示“最后一列” A(2,1:2:5)=[-1, -3, -5] %把右边的3个数分别赋向A数组第2行的第1,3,5个元素位置 B=A([1, 2, 2, 2], [1, 3, 5]) %取A数组的1,3,5列的第1行元素作为B的第1行 %取A数组的1,3,5列的第2行分别作为B的第2,3,4行 L=A<3 %产生与A维数相同的“0,1”逻辑数组 A(L)=NaN %把逻辑1标识的位置上的元素赋为“非数” 运行结果: A = 0 0 0 0 0 0 0 0 0 0 0 0

实验五MATLAB的基本绘图方法

实验三MATLAB的基本绘图方法 一、实验目的 1.二维平面图形的绘制 2.三维立体图形的绘制 3.隐函数作图 二、实验地点:A404 三、实验日期: 四、实验内容 (一)二维平面图形的绘制 1、Plot的使用方法介绍 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m×n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,…元素为纵坐标值绘制多条曲线。 例1:画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 注:在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MA TLAB 软件专门提供了这方面的参数选项,我们只要在每个坐标后加上相关字符串,就可实现它们的功能。具体参见教材。 2、图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 图形修饰函数表如下: 函数含义 grid on (/off) 给当前图形标记添加(取消)网络 xlable(‘string’) 标记横坐标 ylabel(‘string’) 标记纵坐标 title(‘string’) 给图形添加标题 text(x,y,’string’) 在图形的任意位置增加说明性文本信息 gtext(‘string’) 利用鼠标添加说明性文本信息 axis([xmin xmax ymin ymax]) 设置坐标轴的最小最大值 例2、给例1的图形中加入网络和标记。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2)

matlab实验内容答案

实验报告说明: matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。 第一次实验内容: 实验一 MATLAB 运算基础 一、实验目的 1.熟悉启动和退出MA TLAB 的方法。 2.熟悉MA TLAB 命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握MA TLAB 各种表达式的书写规则以及常用函数的使用。 二、实验内容 1.先求下列表达式的值,然后显示MA TLAB 工作空间的使用情况并保存全部变量。 (1)2 2sin 8511z e ?= + (2 )12ln(2 z x =+ ,其中2120.45 5i +? ? =? ?-?? (3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02 a a e e z a a --= +=--- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。 (4)2 2 2 01 41 1221 23 t t z t t t t t ?≤

12344347873657A -????=??????,131203327B -???? =????-?? 求下列表达式的值: (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 12345678910111213141516171819202122232425A ????????=????????, 30 161769 23497041311B ?? ?? -?? ??=-?? ????? ? (1) 求它们的乘积C 。 (2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MA TLAB 工作空间使用情况。 4.完成下列操作: (1)求[100,999]之间能被21整除的数的个数。 提示:先利用冒号表达式,再利用find 和length 函数。 (2)建立一个字符串向量,删除其中的大写字母。 提示:利用find 函数和空矩阵。 第二次实验内容: 实验三 选择结构程序设计 一、实验目的 1. 掌握建立和执行M 文件的方法。 2. 掌握利用if 语句实现选择结构的方法。 3. 掌握利用switch 语句实现多分支选择结构的方法。 4. 掌握try 语句的使用。 二 、实验内容

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

Matlab实验

MATLAB实验报告 学校:湖北文理学院 学院:物理与电子工程学院 专业:电子信息工程 学号: 2013128182 姓名:张冲 指导教师:宋立新

实验一 MATLAB环境的熟悉与基本运算 一、实验目的: 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验内容 1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明, 学习使用指令eye(其它不会用的指令,依照此方法类推) 2、学习使用clc、clear,观察command window、command history和workspace 等窗口的变化结果。 3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、 exerc2、exerc3……),学习使用MATLAB的基本运算符。 三、练习 1)help rand,然后随机生成一个2×6的数组,观察command window、 command history和workspace等窗口的变化结果。 2)学习使用clc、clear,了解其功能和作用。 3)用逻辑表达式求下列分段函数的值 4)求[100,999]之间能被21整除的数的个数。(提示:rem,sum的用法) 四、实验结果 1)

2)clc:清除命令窗口所有内容,数值不变;clear:初始化变量的值。3) 4)

实验二 MATLAB数值运算 一、实验目的 1、掌握矩阵的基本运算 2、掌握矩阵的数组运算 二、实验内容 1)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3, (10) 2)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命令窗 口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A 3)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组A第2 行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有 元素。 4)两种运算指令形式和实质内涵的比较。设有3个二维数组A 2×4,B 2×4 ,C 2×2 , 写出所有由2个数组参与的合法的数组运算和矩阵指令。 5)学习使用表4列的常用函数(通过help方法) 6)学习使用表5数组操作函数。 7)生成一个3行3列的随机矩阵,并逆时针旋转90°,左右翻转,上下翻转。 8)已知a=[1 2 3],b=[4 5 6],求a.\b和a./ b 9)用reshape指令生成下列矩阵,并取出方框内的数组元素。 三、实验结果 1)C(i)表示C中的第i个的数值;

实验5 Matlab绘图操作实验报告

Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+

8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)

(2)

(3)

相关文档