书籍:Matlab实用教程
工具:Matlab2021a
电脑信息:Intel® Xeon® CPU E5-2603 v3 @ 1.60GHz
系统类型:64位操作系统,基于X64的处理器 windows10 专业版
第5章 Matlab程序设计
5.1 脚本文件盒函数文件
5.1.1 M文本编辑器
5.1.2 M文件的基本格式
x=0:0.1:20;
y=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3));
plot(x,y,'r')

5.1.3 M脚本文件
x=0:0.1:20;
y1=1-1/sqrt(1-0.3^2)*exp(-0.3*x).*sin(sqrt(1-0.3^2)*x+acos(0.3));
plot(x,y1,'r')
hold on
y2=1-1/sqrt(1-0.707^2)*exp(-0.707*x).*sin(sqrt(1-0.707^2)*x+acos(0.707));
plot(x,y2,'g')
y3=1-exp(-x).*(1+x);
plot(x,y3,'b')

5.1.4 M 函数文件
5.2 程序流程控制
5.2.1 for...end循环结构
sum=0;
for n=0:2:100
sum=sum+n
end
sum = 0
sum = 2
sum = 6
sum = 12
sum = 20
sum = 30
sum = 42
sum = 56
sum = 72
sum = 90
sum = 110
sum = 132
sum = 156
sum = 182
sum = 210
sum = 240
sum = 272
sum = 306
sum = 342
sum = 380
sum = 420
sum = 462
sum = 506
sum = 552
sum = 600
sum = 650
sum = 702
sum = 756
sum = 812
sum = 870
sum = 930
sum = 992
sum = 1056
sum = 1122
sum = 1190
sum = 1260
sum = 1332
sum = 1406
sum = 1482
sum = 1560
sum = 1640
sum = 1722
sum = 1806
sum = 1892
sum = 1980
sum = 2070
sum = 2162
sum = 2256
sum = 2352
sum = 2450
sum = 2550
sum=zeros(6,1);
for n=eye(6,6)
sum=sum+n
end
sum =
1
0
0
0
0
0
sum =
1
1
0
0
0
0
sum =
1
1
1
0
0
0
sum =
1
1
1
1
0
0
sum =
1
1
1
1
1
0
sum =
1
1
1
1
1
1
5.2.2 while...end循环结构
sum=0;
n=1;
while n<=100
sum=sum+n
n=n+2
end
sum = 1
n = 3
sum = 4
n = 5
sum = 9
n = 7
sum = 16
n = 9
sum = 25
n = 11
sum = 36
n = 13
sum = 49
n = 15
sum = 64
n = 17
sum = 81
n = 19
sum = 100
n = 21
sum = 121
n = 23
sum = 144
n = 25
sum = 169
n = 27
sum = 196
n = 29
sum = 225
n = 31
sum = 256
n = 33
sum = 289
n = 35
sum = 324
n = 37
sum = 361
n = 39
sum = 400
n = 41
sum = 441
n = 43
sum = 484
n = 45
sum = 529
n = 47
sum = 576
n = 49
sum = 625
n = 51
sum = 676
n = 53
sum = 729
n = 55
sum = 784
n = 57
sum = 841
n = 59
sum = 900
n = 61
sum = 961
n = 63
sum = 1024
n = 65
sum = 1089
n = 67
sum = 1156
n = 69
sum = 1225
n = 71
sum = 1296
n = 73
sum = 1369
n = 75
sum = 1444
n = 77
sum = 1521
n = 79
sum = 1600
n = 81
sum = 1681
n = 83
sum = 1764
n = 85
sum = 1849
n = 87
sum = 1936
n = 89
sum = 2025
n = 91
sum = 2116
n = 93
sum = 2209
n = 95
sum = 2304
n = 97
sum = 2401
n = 99
sum = 2500
n = 101
5.2.3 if...else...end条件转移结构
x=0:0.1:20;
zeta=0.5;
if(zeta>0)&(zeta<1)
y=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta));
elseif zeta==1
y=1-exp(-x).*(1+x);
end
plot(x,y)

x=0:0.1:20;
zeta=1;
if(zeta>0)&(zeta<1)
y=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta));
elseif zeta==1
y=1-exp(-x).*(1+x);
end
plot(x,y)

5.2.4 switch...case开关结构
for month=1:12
switch month
case{3,4,5}
season='spring'
case{6,7,8}
season='summer'
case{9,10,11}
season='autumn'
otherwise
season='winter'
end
end
season = winter
season = winter
season = spring
season = spring
season = spring
season = summer
season = summer
season = summer
season = autumn
season = autumn
season = autumn
season = winter
5.2.5 try...catch...end试探结构
n=4;
a=magic(n);
m=3;
b=eye(3);
try
c=a*b
catch
c=a(1:m,1:m)*b
end
lasterr
c =
16 2 3
5 11 10
9 7 6
ans = operator *: nonconformant arguments (op1 is 4x4, op2 is 3x3)
5.2.6 流程控制语句
1、break
sum=0;
n=1;
while n<=100
if sum<1000
sum=sum+n
n=n+2
else
break
end
end
sum = 1
n = 3
sum = 4
n = 5
sum = 9
n = 7
sum = 16
n = 9
sum = 25
n = 11
sum = 36
n = 13
sum = 49
n = 15
sum = 64
n = 17
sum = 81
n = 19
sum = 100
n = 21
sum = 121
n = 23
sum = 144
n = 25
sum = 169
n = 27
sum = 196
n = 29
sum = 225
n = 31
sum = 256
n = 33
sum = 289
n = 35
sum = 324
n = 37
sum = 361
n = 39
sum = 400
n = 41
sum = 441
n = 43
sum = 484
n = 45
sum = 529
n = 47
sum = 576
n = 49
sum = 625
n = 51
sum = 676
n = 53
sum = 729
n = 55
sum = 784
n = 57
sum = 841
n = 59
sum = 900
n = 61
sum = 961
n = 63
sum = 1024
n = 65
2、continue
sum=2;
ss=0;
for n=3:100
for m=2:fix(sqrt(n))
if mod(n,m)==0
ss=1;
break;
else
ss=0;
end
end
if ss==1
continue;
end
sum=sum+n;
end
sum
sum = 1060
3、return
4、pause
5、keyboard
6、input