MATLAB(Matrix Laboratory)是MathWorks公司开发的科学与工程计算的商业化的数学运算工具,能有效的进行复杂 的数学运算和复杂的科学计算。 主要适用于数值计算,特别是在矩阵运算和数据图形化方面功能强大,但不适合编写文字处理程序。 在工程领域,MATLAB程序正逐渐取代传统的计算机语言,成为工程师和科学家的标准运算工具。
1. 数值计算和符号计算功能
求解线性方程组⎧⎩⎨2x+3y−z=73x−5y+3z=86x+3y−8z=9 求 解 线 性 方 程 组 { 2 x + 3 y − z = 7 3 x − 5 y + 3 z = 8 6 x + 3 y − 8 z = 9
a=[2,3,-1;3,-5,3;6,3,-8];
b=[7;8;9];
x=inv(a)*b
syms x1 x2 x3
[x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x38,6*x1+3*x2-8*x3-9)
2. 绘图功能
x=-20:0.1:20;
plot(x,300*sin(x)./x,':',x,x.^2);
3. 程序设计语言功能
MATLAB是解释性语言,程序执行速度较慢,而且不能 脱离MATLAB环境而独立运行。MathWorks公司提供了将 MATLAB源程序编译为独立于MATLAB集成环境运行的 EXE文件以及将MATLAB程序转化为C语言程序的编译器。
4. 扩展功能【工具包】
MATLAB包含两部分内容:基本部分和各种可选的工 具箱。基本部分构成了MATLAB的核心内容,也是使用和构造工 具箱的基础 ; 工具箱扩展了MATLAB的功能,包括:
一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命 令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带 有分号,则逗号可以省略。
如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之 后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其 他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。
工作空间(Workspace) 是MATLAB用于存储各种 变量和结果的内存空间。
当前目录窗口 当前目录(Current Directory)是指MATLAB 运行时的工作目录,只有在当前目录或搜索路径下的文件、函数才可以被运 行或调用。如果没有特殊指明,数据文件也将存放 在当前目录下。
命令历史窗口 自动保留自安装起所有用过的命令的历史记录, 并且还标明了使用时间,从而方便用户查询。而且, 通过双击命令可进行历史命令的再运行
搜索路径 MATLAB的文件是通过不同的路径进行组织和管理的。当用户在命 令窗口输入一条命令后,MATLAB将按照下列顺序搜索所输入的命令。
● 检查该命令是不是一个变量。
● 检查该命令是不是一个内部函数。
● 检查该命令是否为当前目录下的M文件
● 检查该命令是否为MATLAB搜索路径中其他目录下的M文件。
设置搜索路径 :
(1)用path命令设置搜索路径 例如,将用户目录c:\mydir加到搜索路径下: path(path,' c:\mydir ')
(2)用对话框设置搜索路径 在MATLAB的File菜单中选择Set Path命令或在命令窗口执行 pathtool命令
帮助命令
help命令 help命令是查询函数语法的最基本方法,查询信息直接 显示在命令窗口。在命令窗口中直接输入help命令将会显示 当前帮助系统中所包含的所有项目,即搜索路径中所有的目 录名称。同样,可以通过help加函数名来显示该函数的帮助说明。 例如,为了显示magic函数的使用方法与功能 help magic
lookfor命令 lookfor命令可以查询根据用户提供的关键字搜索相关的 函数。例如,输入命令lookfor fourier
1.预定义变量
预定义变量 | 解释 |
---|---|
eps | 机器零阈值 |
ans | 计算结果的默认赋值变量 |
pi | 圆周率 |
i,j | 虚数单位 |
inf, Inf | 无穷大, 1/0的结果 |
NaN,nan | 非数值 0/0 ; inf/inf |
nargin | 函数输入参数的个数 |
nargout | 函数输出参数的个数 |
realmax | 最大正实数 |
realmin | 最小正实数 |
lasterr | 存放最新错误信息 |
lastwarn | 存放最新警告信息 2.变量赋值与命名 |
MATLAB赋值语句有两种格式:
var=expression;
expression; // 该方式将会将值赋于 预定义变量 ans
在MATLAB 中,变量名是以字母开头,后接字母、数字或下 画线的字符序列,最多63个字符。例如x、x_1、xy12 。在MATLAB中,变量名区分字母的大小写。例如addr、Addr 和ADDR表示3个不同的变量。在语句的最后加分号,仅执行赋值操作,不再显示运算的结果, 注释以%开头。
3. 变量管理
who
和whos
显示在MATLAB工作空间中已经驻留的变量名,清单。whos
在给出驻留变量名的同时,还给出它们的维数、所占字 节数以及变量的类型。clear
用来删除MATLAB工作空间中的变量,MATLAB工作空间窗口专门用于内存变量的管理。
4. 内存变量文件
利用MAT文件可以把当前MATLAB工作空间中的一些有用 变量长久地保留下来。MAT文件是MATLAB保存数据的一种标准格式二进制文件, 扩展名是.mat。 MAT文件的生成和装入 save filename [var_list] [-append][-ascii]
以及 load filename [var_list] [-ascii]
。
5. 变量输出格式
用format
命令设置数据输出格式 ,注意:format
命令只影响数据输出格式,而不影响数据的计算和存储。 例如输入为:x=[4/3 1.2345e-6]
,在各种不同的格式符下的输出为:
A=[1,2,3;4,5,6;7,8,9];
A = 1 2 3 4 5 6 7 8 9
对于比较大且比较复杂的矩阵,可以为它专门建立一个M 文件,格式为 .M文件。实例:
(1)启动有关文本编辑程序或MATLAB的M-file编辑器(见 第2章),并输入待建矩阵: mydata=[1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9; 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9; 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9];
(2)把输入的内容存盘(设文件名为matfund.m)。
(3)在MATLAB命令窗口中输入matfund,即运行该M文 件,就会自动建立一个名为mydata的矩阵,可供以后使用
A=[1,2,3;4,5,6;7,8,9];
B=[11:13;14:16;17:19];
C=[A,B;B,A]
size(A)//返回矩阵的行数和列数
length(A)//返回行数和列数中较大者
// 下标和序号的转化
sub2ind(shape,raw_num,col_num)
ind2sub(shape,index)
// 删除 2 4 列
>>A=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18];
>>A(:,[2 4])=[ ]
// 将A变为列向量,排列顺序按矩阵物理结构顺序排列
>>B=A(:)
//这个运算要求矩阵是方阵
3/4 //右除是咱们其他语言通用除法符号
4\3
//结果,这就是规律
ans =
0.7500
ans =
0.7500
// 对于矩阵 Ax=B, 则
x = inv(A)*B
or x = A\B
特别注意一点,对于标量 a/b==b\a, 而一般对于矩阵 A/B ~= B\A
逻辑运算符:
- &(与)
- |(或)
- ~ (非)
逻辑运算函数:
预定义变量 | 解释 |
---|---|
all | 所有元素非0则返回1 |
any | 任意一个元素非0返回1 |
exist | 检查变量是否在工作空间,存在则返回1 |
find | 找出非零元素的位置(按物理结构寻找) |
预定义变量 | 解释 |
---|---|
sin/cos/tan | 三角函数 |
asin/acos/atan | 反三角函数 |
sqrt | 平方根函数 |
log | 自然对数函数 |
log10 | 常用对数函数 |
log2 | 常用对数函数 |
exp | 自然指数函数 |
abs | 绝对值函数 |
rem | 求余数或模运算 |
mod | 模除求余数 |
fix/floor/ceil/round | 截断函数 |
sign | 符号函数 |
gcd | 最大公因子 |
lcm | 最小公倍数 |
MATLAB将一个字符串当作一个行向量,每个元素对 应一个字符,其标识方法和数值向量相同。 多行字符串要求各行字符数要相等 。字符串是以ASCII形式存储的,abs和double函数都可以用来获取字符串矩阵所对应的ASCII数值矩阵;相 反,char函数可以把ASCII矩阵转换为字符串矩阵。
若字符串中的字符含有单撇号,则该单撇号字符应用 两个单撇号来表示,如disp('It''s a book.)'
可以用字符串向量的形式连接多个字符串,即用中括号括起来,如
>>x=8;
>>y=10;
>>disp([num2str(x),' + ',num2str(y),' = ',num2str(x+y)])
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删