matlab基础知识

基本介绍

  MATLAB(Matrix Laboratory)是MathWorks公司开发的科学与工程计算的商业化的数学运算工具,能有效的进行复杂 的数学运算和复杂的科学计算。 主要适用于数值计算,特别是在矩阵运算和数据图形化方面功能强大,但不适合编写文字处理程序。 在工程领域,MATLAB程序正逐渐取代传统的计算机语言,成为工程师和科学家的标准运算工具。

MATLAB功能

1. 数值计算和符号计算功能

线 { 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的功能,包括:

  • 功能性工具箱:主要用来扩充其符号计算功能、可视建模仿 真功能、文字处理功能等。
  • 学科性工具箱:专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱、 统计学工具箱等。

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

MATLAB的变量和数据操作

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. 变量管理

  whowhos显示在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],在各种不同的格式符下的输出为:

  • 短格式(short):1.3333 0.0000
  • 长格式(long):1.33333333333333 0.00000123450000
  • 十六进制格式(hex):3ff5555555555555 3eb4b6231abfd271
  • +格式(+):++

MATLAB矩阵基本操作

矩阵生成方式

  • 直接输入
A=[1,2,3;4,5,6;7,8,9];
A =                               1      2      3                               4      5      6                               7      8      9 
  • 利用M文件生成

对于比较大且比较复杂的矩阵,可以为它专门建立一个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的矩阵,可供以后使用

  • 利用数据文件生成
     用户能够通过load命令,将外部数据文件中的内容调入到 工作空间中创建矩阵,外部文件的扩展名为.dat例如,利用文本编辑器创建一个数据文件test.dat,包含下 列数据: 2 4 6 8 6 ;3 5 6 7 3 ;2 5 1 2 5
    在命令窗口输入:load test.dat 即可以创建一个 test变量。

  • 扩展矩阵
    大矩阵可由已建好的小矩阵拼接而成。例如:

 A=[1,2,3;4,5,6;7,8,9]; 
 B=[11:13;14:16;17:19]; 
 C=[A,B;B,A] 

矩阵操作

  • 下标、序号

  •  下标很好理解,和其他编程语言的数组一样,例如对于一个4*6矩阵 A ,那么第二行第三列的元素值就是 A(2, 3)

  •  序号是指matlab矩阵的内存顺序号,上面的例子对应元素则应该是 A(10)
    这里引入几个相关常用函数
size(A)//返回矩阵的行数和列数
length(A)//返回行数和列数中较大者
// 下标和序号的转化
sub2ind(shape,raw_num,col_num)
ind2sub(shape,index)
  • 矩阵拆分
      矩阵拆分可采用冒号表达式,和python的语法非常相似(这里暂不介绍不同之处)举两个例子看看吧:
// 删除 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

关系运算

  • <(小于)
  • <=(小于或等于)
  • >(大于)
  • >=(大于或等于)
  • = =(等于)
  • ~=(不等于)
      当参与比较的量是两个维数相同的矩阵时,比 较是对两矩阵相同位置的元素按标量关系运算规则 逐个进行,并给出元素的比较结果。最终的关系运 算的结果是一个维数与原矩阵相同的矩阵,它的元 素由0或1组成。
      当参与比较的一个是标量,而另一个是矩阵时, 则把标量与矩阵的每一个元素按标量关系运算规则 逐个比较,并给出元素比较结果。最终的运算结果 是一个维数与矩阵相同的矩阵,它的元素由0或1组 成。

逻辑运算

逻辑运算符:
- &(与)
- |(或)
- ~ (非)

逻辑运算函数:

  • and(a,b)
  • or(a,b)
  • not(a)
  • xor(a,b)
     设参与逻辑运算的是两个标量a和b,那么,逻辑运算符和逻辑运算函数的用法和其他编程语言一样,不做说明。
     若参与逻辑运算的是两个同维矩阵,那么运算将对矩 阵相同位置上的元素按标量规则逐个进行。最终运算结果是 一个与原矩阵同维的矩阵,其元素由1或0组成。
     若参与逻辑运算的一个是标量,一个是矩阵, 那么运算将在标量与矩阵中的每个元素之间按标量 规则逐个进行。最终运算结果是一个与矩阵同维的 矩阵,其元素由1或0组成
预定义变量 解释
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)]) 

猜你喜欢

转载自blog.csdn.net/jeffery0207/article/details/80261584
今日推荐