南昌大学,matlab实验报告

更新时间:2023-03-08 17:43:49 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB实验

机电工程学院

南昌大学教务处

实验一 熟悉MATLAB环境认识MATLAB

一、 实验目的

熟悉matlab的安装与启动;熟悉matlab用户界面;熟悉matlab功能、建模元素;熟悉matlab优化建模过程。

二、 实验设备与仪器

1.微机

2.matlab仿真软件

三、 实验步骤

1. 了解matlab的硬件和软件必备环境; 2. 启动matlab;

3. 熟悉标题栏,菜单栏,工具栏,元素选择窗口,状态栏,控制栏以及系统布局区; 4. 学习优化建模过程。

四、 实验报告要求

1. 写出matlab系统界面的各个构成;以及系统布局区的组成;以及每一部分的功能; 2. 优化建模过程应用举例

五、实验内容

(一)、Matlab操作界面

1. 命令窗口(command window) 2. 命令历史窗口(command history) 3. 工作空间管理窗口(workspace) 4. 当前路径窗口(current directory)

(二)、实现下列优化建模过程

?123???1、简单矩阵A??456?的输入步骤。

??789??南昌大学教务处

A=[1 2 3;4 5 6;7 8 9] A =

1 2 3 4 5 6 7 8 9

2、矩阵的分行输入。 A=[1,2,3 4,5,6 7,8,9]

>> A=[1,2,3 4,5,6 7,8,9] A =

1 2 3 4 5 6 7 8 9 3、指令的续行输入

S=1-1/2+1/3-1/4+ ... 1/5-1/6+1/7-1/8

>> S=1-1/2+1/3-1/4+... 1/5-1/6+1/7-1/8 S =

0.6345

南昌大学教务处

画 4、出z?sin(x2?y2)x?y22所表示的三维曲面。x,y的取值范围是[?8,8]。

x=-8:0.1:8;

[x,y]=meshgrid(x);

z=sin(sqrt(x.^2+y.^2))./(sqrt(x.^2+y.^2)); subplot(1,3,1); plot3(x,y,z) subplot(1,3,2); mesh(x,y,z) subplot(1,3,3); surf(x,y,z)

南昌大学教务处

6、复数矩阵的生成及运算

A=[1,3;2,4]-[5,8;6,9]*i

B=[1+5i,2+6i;3+8*i,4+9*i] C=A*B

>> A=[1,3;2,4]-[5,8;6,9]*i; >> B=[1+5i,2+6i;3+8*i,4+9*i]; >> C=A*B C =

1.0e+002 *

0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700

实验二 MATLAB运算基础

一、实验目的及要求

1.掌握建立矩阵的方法。

2.掌握MATLAB各种表达式的书写规则以及常用函数的使用。

二、 实验设备与仪器

1.微机

2.matlab仿真软件

三、实验原理

1.矩阵的建立方法

(1)直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。

(2)利用M文件建立矩阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。 (3)用MATLAB函数建立矩阵, MATLAB提供了许多产生特殊矩阵的函数,可以利用他们去建立矩阵 2.常用数学函数 sin :正弦函数

南昌大学教务处

cos :余弦函数 sqrt :平方根函数 exp :自然指数函数 abs :绝对值函数 rem :求余数或模运算 mod :模除求余 fix :向零方向取整

floor:大于自变量的最大整数 round:四舍五入到最邻近的整数

四、实验内容及步骤:

1.计算表达式的值

x?sin48??71?logi ,y?|1?3i|,z?x2?y2 215?21?e2

>> x=(sin(48*pi/180)+sqrt(7))/(1+log2(15)-2i); >> y=abs(1+3i)/(1+exp(2)); >> z=x^2+y^2 z =

0.4346 + 0.2859i

2. 矩阵的直接建立及矩阵的运算

(1)请利用直接建立矩阵的方法,采用两种方式建立如下矩阵:

>> A=[1 2 3 10;4 5 6 12;7 8 9 14] A =

1 2 3 10 4 5 6 12 7 8 9 14

?12310?A???45612?; ?78914????南昌大学教务处

>> A=[1,2,3,10;4,5,6,12;7,8,9,14] A =

1 2 3 10 4 5 6 12 7 8 9 14

(2)将矩阵A第2至3行中第1,3,4列元素赋给矩阵B; >> B=A(2:3,[1,3,4]) B =

4 6 12 7 9 14

(3)将矩阵A的每个元素加30,并且将第1行和第3行进行交换。 >> A+30 ans =

31 32 33 40 34 35 36 42 37 38 39 44

>> C=A(1,:); >> A(1,:)=A(3,:); >> A(3,:)=C A =

南昌大学教务处

7 8 9 14 4 5 6 12 1 2 3 10

3.(1)建立一个4?5的零矩阵、单位矩阵和元素全为1的方阵。

>> ones(4,5) ans =

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

>> eye(4,5) ans =

1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0

(2)请使用直接建立矩阵的方法,并结合MATLAB中建立矩阵的函数,生成如下矩阵

?013??。 d??014????015??>> m1=zeros(3); m2=ones(3); m3=[3,4,5]; m4=m1;

m4(:,2)=m2(:,2); m4(:,3)=m5; m4

南昌大学教务处

m4 =

0 1 3 0 1 4 0 1 5

4.当=0.2,0.4,0.6,0.8时,分别求y?sin(x)cos(x)的值。

>> x1=0.2; x2=0.4; x3=0.6; x4=0.8;

y1=sin(x1)*cos(x1) y2=sin(x2)*cos(x2) y3=sin(x3)*cos(x3) y4=sin(x4)*cos(x4) y1 =

0.1947 y2 =

0.3587 y3 =

0.4660 y4 =

0.4998

南昌大学教务处

五、实验结果讨论

1. 如何访问数组中的元素?

设一个矩阵a,访问其第i个元素则为a[i-1],其中以列为主顺序依次查询 2. 如何输出显示字符型变量?

Sprintf(‘%c’,x)

实验三 MATLAB矩阵分析和处理

一、实验目的

1.掌握生成特殊矩阵的方法。 2.掌握矩阵分析的方法。

4.用矩阵求逆法解线性方程组。

二、实验内容

1.设有分块矩阵A???E3?3?O2?3R3?2?,其中E,R,O,S分别为单位矩阵、随机矩阵、零矩阵和对角矩阵,?S2?2?试通过数值计算验证A2???ER?RS??。 2OS??

程序:

E=eye(3); R=rand(3,2); O=zeros(2,3); S=diag([2,2]); A=[E R; O S]; B1=A^2

B2=[E R+R*S;O S^2] 结果: B1 =

1.0000 0 0 2.8504 1.4579

南昌大学教务处

0 1.0000 0 0.6934 2.6739 0 0 1.0000 1.8205 2.2863 0 0 0 4.0000 0 0 0 0 0 4.0000 B2 =

1.0000 0 0 2.8504 1.4579 0 1.0000 0 0.6934 2.6739 0 0 1.0000 1.8205 2.2863 0 0 0 4.0000 0 0 0 0 0 4.0000

由结果可以知道,B1=B2,即证明A2???ER?RS? ?2S?。?O

2.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,求其行列式的值Hh和Hp以及他们的条件数Th和Tp,判断哪个矩阵性能更好,为什么? 程序:

H=hilb(5)

P=pascal(5) Hh=det(H) Hp=det(P) Th=cond(H) Tp=cond(P)

结果: H =

1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 P =

1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35

南昌大学教务处

1 5 15 35 70 Hh =

3.7493e-012 Hp =

1 Th =

4.7661e+005 Tp =

8.5175e+003

矩阵H的条件数比矩阵P的条件数更接近1,故矩阵H的性能更好。

3.建立一个5x5矩阵,求它的行列式的值、迹、秩和范数

程序:

M=[7,4,5,1,2;2,3,7,0,8;,9,5,7,1,3;5,7,9,2,6;7,2,1,6,3] Ma=det(M) Mb=trace(M) Mc=rank(M) Md=norm(M) 结果:

?4.已知A???29618??20512?,求特征值和特征向量,并分析其数学意义

??885????

南昌大学教务处

程序:A=[-29,6,18;20,5,12;-8,8,5]; [V,D]=eig(A)

5.下面是一个线性方程组

??1/21/31/4??x1??0.95??1/31/41/5????x?2????0.67?? ??1/41/51/6????x3????0.52??(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]; C=A\\B

(2) 将方程右边向量第三个元素0.52改为0.53,并比较解的变化

程序:

A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; D=[0.95;0.67;0.53]; E=A\\D

(3) 计算系数矩阵A的条件数并分析结论

程序:

A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; h=cond(A) 结果: h =

1.3533e+003

矩阵A的条件数较接近1,故矩阵A的性能较好。

6.建立A矩阵,试比较sqrtm(A)和sqrt(A),并分析他们的区别

程序:

A=[3,5,7;4,6,8;5,2,9];

南昌大学教务处

B=sqrt(A) C=sqrtm(A)

sqrt是求矩阵里每个元素的平方根,并组成一个新的矩阵。而sqrtm是求矩阵的方根并组成一个新的矩阵

实验四 求余弦的积分并绘出图像一、实验目的

1、了解绘图工具的使用。

二、实验要求(选作下列习题)

1.(不定积分)用int计算下列不定积分,并用diff验证

?xsinx2dxdxdx1?cosx3,?,?ex?1,?arcsinxdx,?secxdx 程序: clear;syms x;

int(x.*sin(x.^2)) diff(-cos(x^2)/2) int(1/(1+cos(x))) diff(tan(x/2)) int(1/(exp(x)+1))

diff(x - log(exp(x) + 1)) int(asin(x))

diff(x*asin(x) + (1 - x^2)^(1/2)) int((sec(x))^3)

diff(log(tan(pi/4 + x/2))/2 + tan(x)/(2*cos(x)))

结果:ans =

-cos(x^2)/2 ans =

x*sin(x^2) ans = tan(x/2) ans =

tan(x/2)^2/2 + 1/2 ans =

x - log(exp(x) + 1) ans =

1 - exp(x)/(exp(x) + 1) ans =

x*asin(x) + (1 - x^2)^(1/2)

南昌大学教务处

ans = asin(x) ans =

log(tan(pi/4 + x/2))/2 + tan(x)/(2*cos(x))

ans =

(tan(x)^2 + 1)/(2*cos(x)) + (tan(pi/4 + x/2)^2/2 + 1/2)/(2*tan(pi/4 + x/2)) + (sin(x)*tan(x))/(2*cos(x)^2)

2.(定积分)用trapz,int计算下列定积分 ?1sinx1x2?xsin(2x)dx120xdx,?0xdx,?0e,?0e?xdx

程序: clear;syms x y h;h=0.01;y=sin(x)/x;x=0:h:1;

z=trapz(y).*h

y=x.^x;z=trapz(y).*h

y=exp(-x.^2);z=trapz(y).*h

x=0:0.01:2*pi;y=(exp(-x.^2)).*sin(2.*x);z=trapz(x,y)

结果: z =

0 z =

0.7835

z =

0.7468

z =

0.5381

x23.(椭圆的周长) 用定积分的方法计算椭圆9?y24?1的周长

程序: syms x y t;t=0:0.01:2*pi;

x=3*sin(t);y=2*cos(t); z=(x.^2)/9+(y.^2)/4-1; p=trapz(z,t)

结果: p = 5.9952e-01

??(1?x?y)dxdy4.(二重积分)计算积分x2?y2?2y

程序: clear;syms x y z;

iy=int(1+x+y,y,(-sqrt(1-x^2))+1,(sqrt(1-x^2))+1); z=int(iy,x,-1,1)

结果: z =

南昌大学教务处

2*pi

5. (广义积分)计算广义积分

1sinx1tan(x)?exp(?x2)???1?x4dx,?0xdx,?01?x2dx 程序: clear;syms x y z; y=int((exp(-x.^2))/(1+x^4),-inf,inf); z=vpa(y,10)

y=int((tan(x))/sqrt(x),0,1); z=vpa(y,10)

y=int(sin(x)/sqrt(1-x^2),0,1);z=vpa(y,10)

结果:

z =

1.434846558 z =

0.7968288892 z =

0.8932437408

实验五 matlab求解多项式(常微分方程)

一、实验目的

1、了解MATLAB中主要用dsolve求符号解析解,ode45,ode23,ode15s求数值解。

注释:s=dsolve(‘方程1’, ‘方程2’,…,’初始条件1’,’初始条件2’ …,’自变量’)

用字符串方程表示,自变量缺省值为t。导数用D表示,2阶导数用D2表示,以此类推。S返回解析解。在方程组情形,s为一个符号结构。

[tout,yout]=ode45(‘yprime’,[t0,tf],y0) 采用变步长四阶Runge-Kutta法和五阶Runge-Kutta-Felhberg法求数值解,yprime是用以表示f(t,y)的M文件名,t0表示自变量的初始值,tf表示自变量的终值,y0表示初始向量值。输出向量tout表示节点(t0,t1, …,tn)T,输出矩阵yout表

南昌大学教务处

示数值解,每一列对应y的一个分量。若无输出参数,则自动作出图形。

ode45是最常用的求解微分方程数值解的命令,对于刚性方程组不宜采用。ode23与ode45类似,只是精度低一些。ode12s用来求解刚性方程组,是用格式同ode45。可以用help dsolve, help ode45查阅有关这些命令的详细信息.

二、实验要求(选作下列习题)

1.求下列微分方程的解析解

程序: syms x y a;

s1=dsolve('D2y+Dy*2-3*y=exp(-3*x)','x') s2=dsolve('D2y-3*Dy=2*sin(x)*exp(2*x)','x')

南昌大学教务处

s3=dsolve('D2y+y*a^2=sin(x)','x') s4=dsolve('D2y*y-Dy*Dy-1=0','x')

s5=dsolve('Dy=y^3./(2*(x*y^2-x^2))','y(1)=1','x') s6=dsolve('D2y+Dy+y=cos(x)','y(0)=0,Dy(0)=1.5','x') s7=dsolve('D2y+y=exp(x)+cos(x)','y(0)=1,Dy(0)=1','x') s8=dsolve('D3y+2*D2y+Dy=0','y(0)=2,Dy(0)=0,D2y(0)=-1','x')

结果: s1 =

exp(x)*C2+exp(-3*x)*C1-1/4*x*exp(-3*x) s2 =

-1/5*cos(x)*exp(2*x)-3/5*sin(x)*exp(2*x)+1/3*exp(3*x)*C1+C2 s3 =

sin(a*x)*C2+cos(a*x)*C1+sin(x)/(a^2-1) s4 =

1/2*C1*(1/exp(1/C1*x)^2/exp(1/C1*C2)^2+1)*exp(1/C1*x)*exp(1/C1*C2)

1/2*C1*(exp(1/C1*x)^2*exp(1/C1*C2)^2+1)/exp(1/C1*x)/exp(1/C1*C2)

南昌大学教务处

s5 =

exp(-1/2*lambertw(-exp(-1)/x)-1/2) s6 =

1/3*exp(-1/2*x)*sin(1/2*3^(1/2)*x)*3^(1/2)+sin(x) s7 =

1/2*sin(x)+1/2*exp(x)+1/2*cos(x)+1/2*sin(x)*x s8 =

1+exp(-x)+exp(-x)*x >>

22.求方程 (1?x)y\?2xy',y(0)?1,y'(0)?3 的解析解和数值解,并进行比较

解方程程序:

syms x y;

y=dsolve('D2y*(1+x^2)=2*x*Dy','y(0)=1,Dy(0)=3','x') 结果: y =

1+3*x+x^3

a.程序建立函数文件fun.m function f=fun(x,y) f=y-x^3+3*x^2-3*x+2;

b.主程序:

南昌大学教务处

[x,y]=ode45('fun',[0,1],1); plot(x,y1,'rp') hold on x=0:0.1:1; y2=1+x.^3+3*x; plot(x,y2,'b') 结果;

南昌大学教务处

实验七 函数文件

一、实验目的

南昌大学教务处

1、理解函数文件的概念。

2、掌握定义和调用MATLAB函数的方法。 二、实验内容(选作2题)

1、定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令

文件中调用该函数文件。

建立函数文件hansu.m

function[a,b,c,d]=hanshu(x)

a=exp(x); b=log(x); c=sin(x); d=cos(x); % a 指数函数值 % b 对数函数值 % c 正弦函数值 % d 余弦函数值 主程序:

x=input('输入x='); [a,b,c,d]=hanshu(x)

南昌大学教务处

结果: 输入x=1 a = 2.7183 b = 0 c = 0.8415 d = 0.5403

南昌大学教务处

?m1cos??msin?2、一个物理系统可用下列方程组来表示:?1?0??0?m10m20?sin?cos??sin??cos?0??a1??0??a??mg?0???2???1? 0??N1??0??????1??N2??m2g?

从键盘输入m1、m2和?的值,求a1、a2、N1、N2的值。其中g取’ 9.8,输入?时以角度为单位。要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。

建立函数文件solve.m function x=solve(A,B) x=A\\B; 主程序;

m1=input('输入m1=') m2=input('输入m2=') theta1=input('输入theta=') g=9.8;

theta=theta1*180/pi;

A=[m1*cos(theta),-m1,-sin(theta),0; m1*sin(theta),0,cos(theta),0; 0,m2,-sin(theta),0;

南昌大学教务处

0,0,-cos(theta),1]; B=[0;m1*g;0;m2*g]; x=solve(A,B); a1=x(1) a2=x(2) N1=x(3) N2=x(4) 结果: 输入m1=2 输入m2=2 输入theta=30 a1 = -6.8768 a2 = 3.1365 N1 = -15.3084

南昌大学教务处

N2 = 33.5641

3、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称是绝对素数。例如13是绝对素数。试求所有两位绝对素数。

建立函数文件mat.m function flag=mat(x) flag=1; for i=2:sqrt(x) if rem(x,i)==0 flag=0; break; end end 主程序: for i=10:99

j=10*rem(i,10)+fix(i/10);

南昌大学教务处

if mat(i)&mat(j) disp(i) end end 结果: 11 13 17 31 37 71 73 79 97

4、设f?x??1?x?2?2?0.1?1?x?3?4?0.01,编写一个MATLAB函数文件fx.m,使得

调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。

南昌大学教务处

建立函数文件fx.m function fx=fx(x)

fx=1./((x-2).^2+0.1)+1./((x-3)^4+0.01); 主程序:

x=input('输入矩阵:') fx=fx(x) 结果:

输入矩阵:[1,2,3;1,2,3;1,2,3] x =

1 2 3 1 2 3 1 2 3 fx =

南昌大学教务处

0.9276 10.0370 100.9091 0.9276 10.0370 100.9091 0.9276 10.0370 100.9091

5、已知y?f?40?f?30??f?20?

(1)当f(n)=n+10ln?n2?5?时,求

建立函数文件fn.m function x=fn(n) x=n+10*log(n^2+5); 主程序:

y=fn(40)/(fn(30)+fn(20)) 结果: y = 0.6390

y的值。南昌大学教务处

(2)当f?n??1?2?2?3?3?4?????n?n?1?时,求y的值。

建立函数文件fn.m function x=fn(n) x=0; for n=1:n x=x+n*(n+1); End 主程序:

y=fn(40)/(fn(30)+fn(20)) 结果: y = 1.7662

实验八,九 MATLAB程序设计(循环、选择)

一、实验目的

1、掌握利用if语句实现选择结构的方法;

2、掌握利用switch语句实现多分支选择结构的方法;

南昌大学教务处

3、掌握循环结构的程序书写方法。 二、实验内容

1、硅谷公司员工的工资计算方法如下:

(1)工作时数超过120小时者,超过部分加发15%; (2)工作时数低于60小时者,扣发700元; (3)其余按每小时84元计发。

编程按输入的工号和该号员工的工作时数,计算应发工资。 程序:

m=input('输入工号:'); n=input('工作小时数:'); if n>=120

y=84*n+(n-120)*0.15 elseif n<60 y=84*n-700 elseif n>=60 & n<120 y=84*n end 结果: 输入工号:0001

南昌大学教务处

工作小时数:50 y = 3500

2、用switch…case语句得出各月份的季节(如3,4, 程序:

x=input('输入月份:'); switch x case 1

disp([Num2str(x),'月是冬季']) case 2

disp([Num2str(x),'月是冬季']) case 3

disp([Num2str(x),'月是春季']) case 4

disp([Num2str(x),'月是春季']) case 5

disp([Num2str(x),'月是春季']) case 6

5月输出为春季)。 南昌大学教务处

disp([Num2str(x),'月是夏季']) case 7

disp([Num2str(x),'月是夏季']) case 8

disp([Num2str(x),'月是夏季']) case 9

disp([Num2str(x),'月是秋季']) case 10

disp([Num2str(x),'月是秋季']) case 11

disp([Num2str(x),'月是秋季']) case 12

disp([Num2str(x),'月是冬季']) End 结果: 输入月份:1 1月是冬季

3、计算1+3+5+…+99的值,当和大于1000的时候终止计算,要求显示终止时候的求和结果以及最后一位计算的整数值。

南昌大学教务处

程序: sum=0; for i=1:2:99 sum=sum+i;

if(sum>1000) break; end end a=sum; b=i;

disp(['求和结果为:',num2str(a)])

disp(['最后一位计算的整数值为:',num2str(b)]) 结果:

求和结果为:1024

最后一位计算的整数值为:63

4、分别采用循环语句和sum语句实现K??2i?1?2?22???263的计算。

i?063

南昌大学教务处

循环实现: y=0; for i=0:63 y=y+2^i; i=i+1; end a=y 结果: a =

1.8447e+019

sum求和实现:i=[1:63]; b=2.^i; a=sum(b) 结果: a =

1.8447e+019

南昌大学教务处

5、编写一个函数文件,实现两个矩阵的乘积和点乘,并在命令文件中调用该函数。

建立函数文件文件cheng.m function [x,y]=cheng(A,B) x=A.*B; y=A*B; 主程序:

A=input('输入矩阵A:')

B=input('输入能与矩阵A相乘的矩阵B:') [x,y]=cheng(A,B) 结果:

输入矩阵A:[2,3;4,9] A =

2 3 4 9

南昌大学教务处

输入能与矩阵A相乘的矩阵B:[2,1;7,3] B =

2 1 7 3 x =

4 3 28 27 y =

25 11 71 31

三、实验要求

1、预习,写出自己设计的实验步骤; 2、按照实验室规范使用计算机; 3、做好实验记录(包括程序和结果)。

四、思考题

1、break语句和continue语句有什么区别?

答:while循环、do-while循环和for循环中,可以用break语句跳出循环,用continue语句结束本次循环,而对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制。continue语句只结束本次循环,

南昌大学教务处

而不是终止整个循环的执行。break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.

continue语句和break语句的区别:

continue语句只结束本次循环,而不是终止整个循环的执行。break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。break语句可以用在循环语句和switch语句中。在循环语句中用来结束内部循环;在switch语句中用来跳出switch语句。 循环嵌套时,break和continue只影响包含它们的最内层循环,与外层循环无关

2.函数文件和命令文件有何异同?

函数文件是另一种形式的M文件,每一个函数文件都定义一个函数,事实上,matlab提供的标准函数大部分是由函数文件定义的。函数文件区别于命令文件之处在于命令文件的变量在文件执行完成后保留在工作空间中,而函数文件内定义的变量只在函数文件内起作用,文件执行完后即被清除。 1.函数文件一般都要带参数 , 都要有返回结果 , 而命令文件没有参数与返回结果

2.函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而命令文件的变量是全局变量 , 执 行完毕后仍被保存在内存中

3.函数文件要定义函数名 , 且保存该函数文件的文件名必须是函数名 .m 。M 函数文件可以有多个因变量和多 个自变量 , 当有多个因变量时用[ ] 括

南昌大学教务处

起来。

3.写出书中82页第10题的程序运行结果。 (1)程序: s=0;

a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a for j=1:4

if rem(k(j),2)~=0 s=s+k(j); end end end S 结果: s = 108

(2)程序:

南昌大学教务处

函数文件sub.m: function fun=sub(z) global x z=3*x; x=x+z;

命令文件: global x x=1:2:5;y=2:2:6; sub(y); x y 结果: x =

4 12 20 y =

2 4 6

4、*和.*运算有什么区别?

南昌大学教务处

本文来源:https://www.bwwdw.com/article/4lf6.html

Top