概述
1.For 循环
For循环允许一条语句或一组语句被重复执行预先指定的次数。For循环的一般形式是:
for x =array
语句
end
在for和end语句之间的语句按数组中的每一列执行一次。在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:, n)。例如,
for n=1:10
x(n)=sin(n*pi/10);
end
x
x =
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
换句话,第一语句是说:对n等于1到10,执行所有语句,直至下一个end语句。第一次通过For循环n=1,第二次,n=2,如此继续,直至n=10。在n=10以后,For循环结束,然后执行end语句后面的任何命令.注意,该循环结束后,n=10.
For循环的其它重要方面是:
(1)For循环不能用For循环内重新赋值循环变量n来终止。
For n=1:10
x(n)=sin(n*pi/10);
n=9;
end
x
x =
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
n
n=
9
执行过程是这样的:
n=1,
x(1)=sin(pi/10),
n=9,
n=2,
x(2)=sin(2*pi/10),
n=9,
n=3,
...,
n=10,
x(10)=sin(10*pi/10),
n=9.
循环结束后,n=9.
(2)在For循环内接受任何有效的MATLAB数组。
data=[3 9 45 6; 7 16 -1 5]
data =
3 9 45 6
7 16 -1 5
for n=data
x=n(1)-n(2)
end
x =
-4
x =
-7
x =
46
x =
1
(3)For循环可按需要嵌套。
For n=1:5
for m=1:5
A(n,m)=n^2+m^2;
end
disp(n)
end
1
2
3
4
5
A
A =
2 5 10 17 26
5 8 13 20 29
10 13 18 25 34
17 20 25 32 41
26 29 34 41 50
(4)当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,上面的第一个例子可被重写为
n=1:10;
x=sin(n*pi/10)
x =
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
两种方法得出同样的结果,而后者执行更快,更直观,要求较少的输入。
(5)为了得到最大的速度,在For循环(While循环)被执行之前,应预先分配数组。例如,前面所考虑的第一种情况,在For循环内每执行一次命令,变量x的大小增加1。迫使MATLAB每通过一次循环要花费时间对x分配更多的内存。为了消去这个步骤,For循环的例子应重写为
x=zeros(1,10);
for n=1:10
x(n)=sin(n*pi/10);
end
现在,只有x(n)的值需要改变。
例1 相传古代印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋发明者),问他要什么?达依尔回答:“陛下只要在国际象棋棋盘的第一个格子上放一粒麦子,第二个格子上放二粒麦子,以后每个格子的麦子数都按前一格的两倍计算。如果陛下按此法给我64格的麦子,就感激不尽,其他什么也不要了。”国王想:“这还不容易!”让人扛了一袋麦子,但很快用光了,再扛出一袋还不够,请你为国王算一下共要给达依尔多少小麦?(1 小麦约 颗)
解: 麦粒总数为
程序如下:
a=1;
s=0
for i=1:64
s=s+a;
a=2*a;
end
s=s/1.4/10^8
运行后得:
s=
1.3176e+011
例2 公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?
解 设 x:鸡翁数,则x的范围:0~19
y:鸡母数,则y的范围:0~33
z:鸡雏数,则z的范围:0~100
则:
x+y+z=100
5x+3y+z/3=100
这是一个不定方程。
for x=0:19
for y=0:33
for z=0:100
if (x+y+z==100)&(5*x+3*y+z/3==100)
d=[x,y,z]
end
end
end
end
运行后得结果:
d =
0 25 75
d =
4 18 78
d =
8 11 81
d =
12 4 84
2.While 循环
与For循环以固定次数求一组命令的值相反,While 循环以不定的次数重复执行一组语句。While循环的一般形式是:
while 表达式1
语句1
end
只要表达式1里的所有元素为真,就执行while和end之间的语句1,否则,就结束循环。通常,表达式的值给出一个标量值,但数组值也同样有效。在数组情况下,当数组的所有元素为真(值不等零)时,就执行语句1,数组中有一个元素为假(值为零),就结束循环。
例3按下面的公式计算:
使误差小于给定的 .
解: 把 作为误差,程序如下:
error=input('请输入误差:');
x=1;
y=0;
n=1;
while x>error
y=y+1;
x=x/n;
n=n+1;
end
e=y
运行如下:
请输入误差:0.001
e =
2.7181
3.IF-ELSE-END 结构
很多情况下,命令的序列必须根据关系的检验有条件地执行。在编程语言里,这种逻辑由某种If-Else-End结构来提供。最简单的If-Else-End结构是:
if 表达式1
语句1
end
如果在表达式1中的所有元素为真(非零),那么就执行if和end语言之间的语句1。
假如有两个选择,If-Else-End结构是:
if 表达式1
语句1
else
语句2
end
在这里,如果表达式1为真,则执行语句1;如果表达式是假,则执行语句2。
当有三个或更多的选择时,If-Else-End结构采用形式
if 表达式1
语句1
elseif 表达式2
语句2
elseif 表达式3
语句3
elseif 表达式4
语句4
elseif ……
.
.
.
else
语句
end
如果表达式1为真,则执行语句1,结束循环;如果表达式1为假,则检验表达式2,如果表达式2为真,则执行语句2,结束循环;如果表达式2为假,则检验表达式3,如此下去,如果所有表达式都为假时,则执行最后的语句。即只执行第一个真值表达式相关的语句;接下来的表达式不检验,跳过其余的If-Else-End结构。而且,最后的else命令可有可无。
4.switch-case-end结构
如果在一个程序中,必须针对某个变量不同取值情况进行相应操作,switch语句比if else语句更方便。switch语句的一般形式为:
switch 分支条件(数值或字符串)
case 数值(或字符串)条件1
语句1
case 数值(或字符串)条件2
语句2
case 数值(或字符串)条件3
语句3
case ...
...
otherwise
语句
end
其中分支条件可以是一个函数、变量或者表达式.如果条件1与分支条件匹配就执行语句1,退出循环;否则,检验条件2,如果条件2与分支条件匹配执行语句2,退出循环;否则,检验条件3,...,当所有条件都不与分支条件匹配时就执行最后的语句。注意otherwise是可以省略的。
例4 在图形界面上放置一个弹出式菜,点击弹出式菜单可以设置曲线颜色。
解:程序如下:
x=linspace(-6,6,50);
y=sin(x);
h=plot(x,y,'linewidth',4);
h0=uicontrol('position',[600,500,100,30],...
'style','popupmenu',...
'string','红色|蓝色|黄色|黑色|青色',...
'callback',...
['v=get(h0,''value'');',...
'switch v;',...
'case 1;',...
'set(h,''color'',''r'');',...
'case 2;',...
'set(h,''color'',''b'');',...
'case 3;',...
'set(h,''color'',''y'');',...
'case 4;',...
'set(h,''color'',''k'');',...
'case 5;',...
'set(h,''color'',''c'');',...
'end;']);
3.变量及其命名规则
变量
1. MATLAB对变量名的大小写是敏感的。
2. 变量的第一个字符必须为英文字母,而且不能超过31个字符。
3. 变量名可以包含下划线、数字,但不能为空格符、标点。
预定义的变量
ans | 预设的计算结果的变量名 |
eps | MATLAB定义的正的极小值=2.2204e-16 |
pi | 内建的π值 |
inf | ∞值,无限大 ( 1/0) |
NaN | 无法定义一个数目 ( 0/0 ) |
i 或 j | 虚数单位i=j=(-1)^(1/2) |
而键入clear则是清除所有定义过的变量名称。
4.MATLAB赋值语句
表达式
MATLAB书写表达式的规则与“手写算式”差不多相同。
如果一个指令过长可以在结尾加上...(代表此行指 令与下一行连续),例如
?3*...
6
ans =
18
比如将23赋值给变量a:
a=23
5.MATLAB常用数学函数
三角函数和双曲函数
名称 | 含义 | 名称 | 含义 | 名称 | 含义 |
sin | 正弦 | csc | 余割 | atanh | 反双曲正切 |
cos | 余弦 | asec | 反正割 | acoth | 反双曲余切 |
tan | 正切 | acsc | 反余割 | sech | 双曲正割 |
cot | 余切 | sinh | 双曲正弦 | csch | 双曲余割 |
asin | 反正弦 | cosh | 双曲余弦 | asech | 反双曲正割 |
acos | 反余弦 | tanh | 双曲正切 | acsch | 反双曲余割 |
atan | 反正切 | coth | 双曲余切 |
|
|
acot | 反余切 | asinh | 反双曲正弦 |
|
|
sec | 正割 | acosh | 反双曲余弦 |
|
|
矩阵变换函数
名称 | 含义 | 名称 | 含义 |
fiplr | 矩阵左右翻转 | diag | 产生或提取对角阵 |
fipud | 矩阵上下翻转 | tril | 产生下三角 |
fipdim | 矩阵特定维翻转 | triu | 产生上三角 |
Rot90 | 矩阵反时针90翻转 |
|
|
其他函数
名称 | 含义 | 名称 | 含义 |
min | 最小值 | max | 最大值 |
mean | 平均值 | median | 中位数 |
std | 标准差 | diff | 相邻元素的差 |
sort | 排序 | length | 个数 |
norm | 欧氏(Euclidean)长度 | sum | 总和 |
prod | 总乘积 | dot | 内积 |
cumsum | 累计元素总和 | cumprod | 累计元素总乘积 |
cross | 外积 |
|
|
可查阅在线帮助helpwin中matlab"elfun或help elfun。
6.MATLAB系统命令
命 令 | 含 义 |
help | 在线帮助 |
helpwin | 在线帮助窗口 |
helpdesk | 在线帮助工作台 |
demo | 运行演示程序 |
ver | 版本信息 |
readme | 显示Readme文件 |
who | 显示当前变量 |
whos | 显示当前变量的详细信息 |
clear | 清空工作间的变量和函数 |
pack | 整理工作间的内存 |
load | 把文件调入变量到工作间 |
save | 把变量存入文件中 |
quit/exit | 退出MATLAB |
what | 显示指定的matlab文件 |
lookfor | 在HELP里搜索关键字 |
which | 定位函数或文件 |
path | 获取或设置搜索路径 |
echo | 命令回显 |
cd | 改变当前的工作目录 |
pwd | 显示当前的工作目录 |
dir | 显示目录内容 |
unix | 执行unix命令 |
dos | 执行dos命令 |
! | 执行操作系统命令 |
computer | 显示计算机类型 |
可查阅在线帮助helpwin中matlab"general或help general。
7.MATLAB语言中的关系与逻辑运算
在执行关系及逻辑运算时,MATLAB 将输入的不为零的数值都视为真 (True)而为零的数值则视为假 (False)。 运算的输出值将判断为真者以 1 表示而判断为假者以 0 表示。各个运算符须用在二个大小相同的阵列或是矩阵中的比较。
关系运算
指令 | 含义 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
== | 等于 |
~= | 不等于 |
?a=1:2:11;
?b=2:1:7;
?a>b
ans =
0 0 1 1 1 1
?a==b
ans =
0 1 0 0 0 0
?a>=b
ans =
0 1 1 1 1 1
?a-(b>4)
ans =
1 3 5 6 8 10
逻辑运算
指令 | 含义 |
& | 逻辑 and |
| | 逻辑 or |
~ | 逻辑 not |
(a<2)|(b>6)
ans =
1 0 0 0 0 1
c=a+(a>3)|(b<6)
c =
1 1 1 1 1 1
逻辑关系函数
指令 | 含义 |
xor | 不相同就取1,否则取0 |
any | 只要有非0就取1,否则取0 |
all | 全为1取1,否则为0 |
isnan | 为数NaN取1,否则为0 |
isinf | 为数inf取1,否则为0 |
isfinite | 有限大小元素取1,否则为0 |
ischar | 是字符串取1,否则为0 |
isequal | 相等取1,否则取0 |
ismember | 两个矩阵是属于关系取1,否则取0 |
isempty | 矩阵为空取1,否则取0 |
isletter | 是字母取1,否则取0(可以是字符串) |
isstudent | 学生版取1 |
isprime | 质数取1,否则取0 |
isreal | 实数取1,否则取0 |
isspace | 空格位置取1,否则取0 |
isequal(a,b)
ans =
0
isreal(a)
ans =
1
isstudent
ans =
0
8.矩阵及运算
1. 数组
MATLAB的运算事实上是以数组 (array) 及矩阵 (matrix) 方式在做运算。
建立一个数组时,如果是要个别键入元素,须用中括号[ ]将元素置于其中。数组为一维元素所构成,而矩阵为多维元素所组成,例如
» x=[1 2 3 4 5 6 7 8] ;%一维 1x8 阵列
» x = [1 2 3 4 5 6 7 8; 4 5 6 7 8 9 10 11] ; %二维 2x8 矩阵,以;区隔各列的元素
» x = [1 2 3 4 5 6 7 8 % 二维 2x8 矩阵,各列的元素分二行键入
4 5 6 7 8 9 10 11] ;
» x(3)% x的第三个元素
ans =
2
» x([1 2 5])% x的第一、二、五个元素
ans =
1 4 3
x(1:5)% x的第前五个元素
ans =
1 4 2 5 3
» x(10:end)% x的第十个元素后的元素
ans =
8 6 9 7 10 8 11
» x(10:-1:2)% x的第十个元素和第二个元素的倒排
ans =
8 5 7 4 6 3 5 2 4
» x(find(x>5))% x中大于5的元素
ans =
6
7
8
6
9
7
10
8
11
» x(4)=100%给x的第四个元素重新给值
x =
1 2 3 4 5 6 7 8
4 100 6 7 8 9 10 11
» x(3)=[]% 删除第三个元素
x =
Columns 1 through 12
1 4 100 3 6 4 7 5 8 6 9 7
Columns 13 through 15
10 8 11
» x(16)=1% 加入第十六个元素
x =
Columns 1 through 12
1 4 100 3 6 4 7 5 8 6 9 7
Columns 13 through 16
10 8 11 1
2 建立数组
上面的方法只适用于元素不多的情况,但是当元素很多的时候,则须采用以下的方式:
» x=(0:0.02:1);% 以:起始值=0、增量值=0.0.2、终止值=1的矩阵
» x=linspace(0,1,100);% 利用linspace,以区隔起始值=0终止值=1之间的元素数目=100
»a=[]%空矩阵
a =
[]
» zeros(2,2)%全为0的矩阵
ans =
0 0
0 0
» ones(3,3) %全为1的矩阵
ans =
1 1 1
1 1 1
1 1 1
» rand(2,4);随机矩阵
»a=1:7, b=1:0.2:5;%更直接的方式
»c=[b a];%可利用先前建立的阵列 a 及阵列 b ,组成新阵列
» a=1:1:10;
» b=0.1:0.1:1;
» a+b*I%复数阵列
ans =
Columns 1 through 4
1.0000 + 0.1000i 2.0000 + 0.2000i 3.0000 + 0.3000i 4.0000 + 0.4000i
Columns 5 through 8
5.0000 + 0.5000i 6.0000 + 0.6000i 7.0000 + 0.7000i 8.0000 + 0.8000i
Columns 9 through 10
9.0000 + 0.9000i 10.0000 + 1.0000i
在MATLAB的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented)的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址
3 子矩阵
通过一个矩阵产生另一个矩阵的方法(上面已经有例子)
假如一个矩阵A
则 A(m1:m2 ,n1:n2)为由A的第m1到m2行,第n1列到n2列组成的子矩阵。
9.矩阵的运算
经典的算术运算符见下表:
经 典 的 算 术 运 算 符 | ||
| ||
| 运 算 符 | MATLAB表达式 |
加 | + | a+b |
减 | - | a-b |
乘 | * | a*b |
除 | / 或 " | a/b或a"b |
幂 | ^ | a^b |
前面我们已经把经典的算术运算符告诉大家了,在这里同样也可以使用。
» a=1:1:10;
» b=0:10:90;
» a+b
ans =
1 12 23 34 45 56 67 78 89 100
» a-b
ans =
1 -8 -17 -26 -35 -44 -53 -62 -71 -80
» a.*b%注意这里a后加了个“.”
ans =
0 20 60 120 200 300 420 560 720 900
» a/b
ans =
0. 1158
» a"b
ans =
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9
» b./a
ans =
Columns 1 through 7
0 5.0000 6.6667 7.5000 8.0000 8.3333 8.5714
Columns 8 through 10
8.7500 8.8889 9.0000
» a."b
ans =
Columns 1 through 7
0 5.0000 6.6667 7.5000 8.0000 8.3333 8.5714
Columns 8 through 10
8.7500 8.8889 9.0000
» a.^2
ans =
1 4 9 16 25 36 49 64 81 100
说明:在这里特别要注意一下有没有加点“.”之间的区别,这些算术运算符所运算的两个阵列是否需要长度一致。
矩阵转置运算
通过在矩阵变量后加’的方法来表示转置运算
?a=1:1:10;
?b=0:10:90;
?a'
ans =
1
2
3
4
5
6
7
8
9
10
?c=a+b*i;
?c'
ans =
1.0000
2.0000 -10.0000i
3.0000 -20.0000i
4.0000 -30.0000i
5.0000 -40.0000i
6.0000 -50.0000i
7.0000 -60.0000i
8.0000 -70.0000i
9.0000 -80.0000i
10.0000 -90.0000iMATLAB函数参考
附录一:命令
附录1.1 管理用命令
函数名 功能描述 函数名 功能描述
addpath 增加一条搜索路径 rmpath 删除一条搜索路径
demo 运行Matlab演示程序 type 列出.M文件
doc 装入超文本文档 version 显示Matlab的版本号
help 启动联机帮助 what 列出当前目录下的有关文件
lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性
lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录
path 设置或查询Matlab路径
附录1.2管理变量与工作空间用命令
函数名 功能描述 函数名 功能描述
clear 删除内存中的变量与函数 pack 整理工作空间内存
disp 显示矩阵与文本 save 将工作空间中的变量存盘
length 查询向量的维数 size 查询矩阵的维数
load 从文件中装入数据 who,whos 列出工作空间中的变量名
附录1.3文件与操作系统处理命令
函数名 功能描述 函数名 功能描述
cd 改变当前工作目录 edit 编辑.M文件
delete 删除文件 matlabroot 获得Matlab的安装根目录
diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录
dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件
! 执行操作系统命令
附录1.4窗口控制命令
函数名 功能描述 函数名 功能描述
echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面
format 设置输出格式
附录1.5启动与退出命令
函数名 功能描述 函数名 功能描述
matlabrc 启动主程序 quit 退出Matlab环境
startup Matlab自启动程序
附录2 运算符号与特殊字符附录
2.1运算符号与特殊字符
函数名 功能描述 函数名 功能描述
+ 加 ... 续行标志
- 减 , 分行符(该行结果不显示)
* 矩阵乘 ; 分行符(该行结果显示)
.* 向量乘 % 注释标志
^ 矩阵乘方 ! 操作系统命令提示符
.^ 向量乘方 矩阵转置
kron 矩阵kron积 . 向量转置
" 矩阵左除 = 赋值运算
/ 矩阵右除 == 关系运算之相等
." 向量左除 ~= 关系运算之不等
./ 向量右除 < 关系运算之小于
: 向量生成或子阵提取 <= 关系运算之小于等于
() 下标运算或参数定义 > 关系运算之大于
[] 矩阵生成 >= 关系运算之大于等于
{} & 逻辑运算之与
. 结构字段获取符 | 逻辑运算之或
. 点乘运算,常与其他运算符联合使用(如.") ~ 逻辑运算之非
xor 逻辑运算之异成
附录2.2逻辑函数
函数名 功能描述 函数名 功能描述
all 测试向量中所用元素是否为真 is*(一类函数) 检测向量状态.其中*表示一个确定的函数(isinf)
any 测试向量中是否有真元素 *isa 检测对象是否为某一个类的对象
exist 检验变量或文件是否定义 logical 将数字量转化为逻辑量
find 查找非零元素的下标
附录3 语言结构与调试
附录3.1编程语言
函数名 功能描述 函数名 功能描述
builtin 执行Matlab内建的函数 global 定义全局变量
eval 执行Matlab语句构成的字符串 nargchk 函数输入输出参数个数检验
feval 执行字符串指定的文件 script Matlab语句及文件信息
function Matlab函数定义关键词
附录3.2控制流程
函数名 功能描述 函数名 功能描述
break 中断循环执行的语句 if 条件转移语句
case 与switch结合实现多路转移 otherwise 多路转移中的缺省执行部分
else 与if一起使用的转移语句 return 返回调用函数
elseif 与if一起使用的转移语句 switch 与case结合实现多路转移
end 结束控制语句块 warning 显示警告信息
error 显示错误信息 while 循环语句
for 循环语句
附录3.3交互输入
函数名 功能描述 函数名 功能描述
input 请求输入 menu 菜单生成
keyboard 启动键盘管理 pause 暂停执行
附录3.4面向对象编程
函数名 功能描述 函数名 功能描述
class 生成对象 isa 判断对象是否属于某一类
double 转换成双精度型 superiorto 建立类的层次关系
inferiorto 建立类的层次关系 unit8 转换成8字节的无符号整数
inline 建立一个内嵌对象
附录3.5调试
函数名 功能描述 函数名 功能描述
dbclear 清除调试断点 dbstatus 列出所有断点情况
dbcont 调试继续执行 dbstep 单步执行
dbdown 改变局部工作空间内存 dbstop 设置调试断点
dbmex 启动对Mex文件的调试 sbtype 列出带命令行标号的.M文件
dbquit 退出调试模式 dbup 改变局部工作空间内容
dbstack 列出函数调用关系
附录4 基本矩阵与矩阵处理
附录4.1基本矩阵
函数名 功能描述 函数名 功能描述
eye 产生单位阵 rand 产生随机分布矩阵
linspace 构造线性分布的向量 randn 产生正态分布矩阵
logspace 构造等对数分布的向量 zeros 产生零矩阵
ones 产生元素全部为1的矩阵 : 产生向量
附录4.2特殊向量与常量
函数名 功能描述 函数名 功能描述
ans 缺省的计算结果变量 non 非数值常量常由0/0或Inf/Inf获得
computer 运行Matlab的机器类型 nargin 函数中参数输入个数
eps 精度容许误差(无穷小) nargout 函数中输出变量个数
flops 浮点运算计数 pi 圆周率
i 复数单元 realmax 最大浮点数值
inf 无穷大 realmin 最小浮点数值
inputname 输入参数名 varargin 函数中输入的可选参数
j 复数单元 varargout 函数中输出的可选参数
附录4.3时间与日期
函数名 功能描述 函数名 功能描述
calender 日历 eomday 计算月末
clock 时钟 etime 所用时间函数
cputime 所用的CPU时间 now 当前日期与时间
date 日期 tic 启动秒表计时器
datenum 日期(数字串格式) toc 读取秒表计时器
datestr 日期(字符串格式) weekday 星期函数
datevoc 日期(年月日分立格式)
附录4.4矩阵处理
函数名 功能描述 函数名 功能描述
cat 向量连接 reshape 改变矩阵行列个数
diag 建立对角矩阵或获取对角向量 rot90 将矩阵旋转90度
fliplr 按左右方向翻转矩阵元素 tril 取矩阵的下三角部分
flipud 按上下方向翻转矩阵元素 triu 取矩阵的上三角部分
repmat 复制并排列矩阵函数
附录5 特殊矩阵
函数名 功能描述 函数名 功能描述
compan 生成伴随矩阵 invhilb 生成逆hilbert矩阵
gallery 生成一些小的测试矩阵 magic 生成magic矩阵
hadamard 生成hadamard矩阵 pascal 生成pascal矩阵
hankel 生成hankel矩阵 toeplitz 生成toeplitz矩阵
hilb 生成hilbert矩阵 wilkinson 生成wilkinson特征值测试矩阵
例子1
1.有一周期为4p的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:①用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;②三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(2)+x(3))/3,x1(3)=(x(2)+x(3)+x(4))/3……)
程序:
例子2
2.编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。
程序:
functionc=collatz(n)
调用:
collatz(25)
例子3
学生姓名 | 王 | 张 | 刘 | 李 | 陈 | 杨 | 于 | 黄 | 郭 | 赵 |
成 | 72 | 83 | 56 | 94 | 100 | 88 | 96 | 68 | 54 | 65 |
程序:(可扩展)
Name=['王','张','刘','李','陈','杨','于','黄','郭','赵'];
运行结果:
学生姓名
--------------------------
例子4
程序:
k=input('选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):');
结果:
选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):2
输入待转变的温度(允许输入数组):99
转换前的温度
最后
以上就是老迟到春天为你收集整理的matlab编程1.For 循环2.While 循环3.IF-ELSE-END 结构4.switch-case-end结构3.变量及其命名规则4.MATLAB赋值语句5.MATLAB常用数学函数6.MATLAB系统命令7.MATLAB语言中的关系与逻辑运算8.矩阵及运算9.矩阵的运算MATLAB函数参考例子1 例子2 例子3例子4 的全部内容,希望文章能够帮你解决matlab编程1.For 循环2.While 循环3.IF-ELSE-END 结构4.switch-case-end结构3.变量及其命名规则4.MATLAB赋值语句5.MATLAB常用数学函数6.MATLAB系统命令7.MATLAB语言中的关系与逻辑运算8.矩阵及运算9.矩阵的运算MATLAB函数参考例子1 例子2 例子3例子4 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复