MATLAB入门(一)
1.MATLAB简介
MATLAB名字是由MATrix和LABoratory两个词的前三个字母组合而成的。它是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。被誉为“巨人肩上的工具”。 由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言--如Basic、Fortran和C等那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。
MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。MATLAB自问世以来,就以数值计算著称。MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使的MATLAB高度“向量化”。经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。美国许多大学的实验室都安装有MATLAB供学习和研究之用。在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。
MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制、系统辨识、神经网络等。随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师不可不用的工具。
2.MATLAB工作环境
运行MATLAB的可执行文件,自动创建MATLAB5.3指令窗(Command Window)。
如果你是个初学者,可以在指令窗键入demo,这可是学习的好帮手。
?demo
一旦发现指令不知如何使用时,help命令将告诉你使用。例:
?help sin
SIN Sine.
SIN(X) is the sine of the elements of X.
Overloaded methods
help sym/sin.m
在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如:
(10*19+2/4-34)/2*3
ans
= 234.7500
MATLAB会将运算结果直接存入一变量ans,代表MATLAB运算後的答案,并显示其数值屏幕上。
如果在上述的例子结尾加上”;”,则计算结果不会显示在指令视窗上,要得知计算值只须键入该变数值即可。
MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可以在指令视窗上的功能选单上的Options 下选 Numerical Format,或者直接在指令视窗键入以下的各个数字显示格式的指令。
» format short (这是默认的)
MATLAB利用了↑↓二个游标键可以将所下过的指令叫回来重覆使用。按下↑则前一次指令重新出现,之后再 按Enter键,即再执行前一次的指令。而↓键的功用则是往后执行指令。其它在键盘上的几个键如→←, Delete, Insert,其功能则显而易见,试用即知无须多加说明。
Ctrl+C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。
有三种方法可以结束MATLAB
1.exit
2.quit
3.直接关闭MATLAB的命令视窗(Command window)
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

浙公网安备 33010602011771号