MATLAB语言是当前国际上自动控制领域的首选计算机语言,也是很多理工科专业最适合的计算机数学语言。通过学习MATLAB可以更深入地理解和掌握数学问题的求解思路,提高求解数学问题的能力。MATLAB语言的主要优势,现在列举五点:
命令名称 | 功能说明 |
clear | 清除内存中所有的或指定的变量与函数 |
cd | 显示和改变当前工作目录 |
clc | 擦除MATLAB工作窗口中所有显示的内容 |
clf | 擦除MATLAB当前工作窗口中的图形 |
dir | 列出当前或指定目录下的子目录和文件清单 |
disp | 在运行中显示变量或文字内容 |
echo | 控制运行的文字命令是否显示 |
hold | 控制当前的图形窗口对象是否被刷新 |
home | 擦除命令窗口中所有显示的内容,并把光标移到命令窗口的左上角 |
pack | 收集内存碎片以扩大内存空间 |
quit | 关闭并退出MATLAB |
type | 显示所指定文件的全部内容 |
exit | 退出MATLAB |
help | 获得在线帮助 |
helpwin | 打开帮助窗口 |
demo | 运行MATLAB演示程序 |
lookfor | 按照指定的关键字查找相关的M文件 |
who | 列出当前工作内存中的变量 |
whos | 列出当前工作内存中的变量的详细信息 |
what | 列出当前目录或指定目录下的M文件,MAT文件和MEX文件 |
which | 显示指定函数和文件的路径 |
exist | 检查指定名字的变量或文件的存在性 |
doc | 在网络浏览器中显示指定内容的HTML格式的帮助文件,或者启动helpdesk |
(1)help命令
直接输入help,MATLAB将列出所有的帮助主题,每个帮助主题对应于MATLAB搜索路径中的一个目录。help后可加帮助主题,可获得指定主题的帮助信息。
help后可加函数名;如果后加命令名,将得到指定命令的用法。
(2)demo命令
(3)helpwin命令
该命令用于打开MATLAB的帮助文件窗。
(4) lookfor 命令
该命令允许用户通过完整的或部分关键字来搜索要查找的内容。
(5)who和whos命令
该命令可列出在MATLAB工作内存中驻留的变量名
(6)exist命令
该命令可查找或检查变量和函数的存在性。
MATLAB语言的变量命名遵循以下四个规则:
MATLAB中有一些保留的常量,如下:
特殊变量 | 取值 |
ans | 用于结果的缺省变量名 |
pi | 圆周率 |
eps | 计算机的最小数,当和1相加就产生一个比1大的数 |
flops | 浮点运算数 |
inf | 无穷大,如1/0 |
NaN | 不定量,如0/0 |
i,j | |
nargin | 所用函数的输入变量数目 |
nargout | 所用函数的输出变量数目 |
realmin | 最小可用正实数 |
realmax | 最大可用正实数 |
四. 数学运算与符号
+ | 加法运算,适用于两个数或两个矩阵相加 |
- | 减法运算 |
* | 乘法运算 |
.* | 点乘运算 |
/ | 除法运算 |
./ | 点除运算 |
^ | 乘幂运算 |
.^ | 点乘幂运算 |
\ | 反斜杠表示左除 |
MATLAB的每条命令后,若为逗号或者无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果。
“%” 后面所有文字为注释。
“...”表示续行。
按照IEEE标准,双精度数值变量有64位(占8字节),11指数位,53数值位和一个符号位,大小在到之间,可以利用double()函数进行转换。
unit8()代表无符号位的8位整形数据类型,值域是0至255,常用于图像表示和处理,可以节省存储空间,并提高处理速度。
其他的还有int8(),int 16(),int 32(), unit 16(), unit 32()。
符号型的表示,sym(A),常用于公式推导和解析解解法。符号变量声明的格式如下:
syms var_list var_props
举两个例子
syms a b real syms c positive
符号型数值可以采用变精度函数求值,格式如下:
vpa(A) vpa(A,n)
举两个例子
MATLAB代码如下:
ans1=vpa(pi) ans2=vpa(pi,60)
运行结果:
ans1 =3.1415926535897932384626433832795
ans2 =3.14159265358979323846264338327950288419716939937510582097494
字符串型数据需要用单引号括起来;
多维数组是矩阵的直接扩展,具有多个下标;
单元数组可以将不同类型的数据集成到一个变量名下面,用{}表示。比如用A{i,j}可以表示单元数组A的第i行,第j列的内容;
类与对象允许用户自己编写包含各种复杂详细的变量,可以定义传递函数。
格式遵循:赋值变量=赋值表达式
利用MATLAB将的值赋给a
解:
MATLAB代码如下:
a=pi^2
运行结果:
a =9.869604401089358
利用MATLAB表示B矩阵:
B=\begin{bmatrix}1+9j&2+8j&3+7j\\4+6j&5+5j&6+4j\\7+3j&8+2j&0+j \end{} B=\begin{bmatrix}1+9j&2+8j&3+7j\\4+6j&5+5j&6+4j\\7+3j&8+2j&0+j \end{} B=\begin{bmatrix}1+9j&2+8j&3+7j\\4+6j&5+5j&6+4j\\7+3j&8+2j&0+j \end{}
解:
MATLAB代码如下:
B=[1+9i,2+8i,3+7i;4+6i,5+5i,6+4i;7+3i,8+2i,1i]
运行结果:
B =
1.000000000000000 + 9.000000000000000i 2.000000000000000 + 8.000000000000000i 3.000000000000000 + 7.000000000000000i
4.000000000000000 + 6.000000000000000i 5.000000000000000 + 5.000000000000000i 6.000000000000000 + 4.000000000000000i
7.000000000000000 + 3.000000000000000i 8.000000000000000 + 2.000000000000000i 0.000000000000000 + 1.000000000000000i
函数调用在MATLAB中的格式如下:
[a,b,c]=my_fun(d,e,f,c)%[返回变量列表]=函数名(输入变量列表)
在MATLAB中格式如下:
v=s1:s2:s3%该函数生成一个行向量v%s1是起始值%s2是步长,如果省略则默认为1%s3是最大值
用不同的步距生成间向量。
解:
MATLAB代码如下:
v1=0:0.2:pi %步距0.2 v2=0:-0.1:pi %步距为负,不能生成向量,会生成空矩阵 v3=0:pi v4=pi:-1:0 %逆序排列构成新向量 v5=[0:0.4:pi,pi]
运行结果:
v1 =
列 1 至 6
0 0.200000000000000 0.400000000000000 0.600000000000000 0.800000000000000 1.000000000000000
列 7 至 12
1.200000000000000 1.400000000000000 1.600000000000000 1.800000000000000 2.000000000000000 2.200000000000000
列 13 至 16
2.400000000000000 2.600000000000000 2.800000000000000 3.000000000000000
v2 =空的 1×0 double 行向量
v3 = 0 1 2 3
v4 =3.141592653589793 2.141592653589793 1.141592653589793 0.141592653589793
v5 =
列 1 至 6
0 0.400000000000000 0.800000000000000 1.200000000000000 1.600000000000000 2.000000000000000
列 7 至 9
2.400000000000000 2.800000000000000 3.141592653589793
基本语句格式如下:
B=A(v1,v2)%v1,v2分别代表提取行列号构成的向量
例题4
提取矩阵A的全部奇数行,所有列。
A=\begin{bmatrix}1&2&3&4\\3&4&5&6\\5&6&7&8\\7&8&9&0 \end{} A=\begin{bmatrix}1&2&3&4\\3&4&5&6\\5&6&7&8\\7&8&9&0 \end{} A=\begin{bmatrix}1&2&3&4\\3&4&5&6\\5&6&7&8\\7&8&9&0 \end{}
解:
MATLAB代码如下:
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0];B1=A(1:2:end,:) %提取全部奇数行,所有列
运行结果:
B1 =
1 2 3 4
5 6 7 8
以例题4为例子可以进一步提取形成子矩阵。
MATLAB代码如下:
A=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 0]; %提取3,2,1行,2,,3,,4列构成子矩阵B2=A([3 2 1],[2 3 4]) %将A矩阵左右翻转,即最后一列排在最前面B3=A(:,end:-1:1)
运行结果如下:
B2 =
6 7 8
4 5 6
2 3 4
B3 =
4 3 2 1
6 5 4 3
8 7 6 5
0 9 8 7
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删