matlab基础知识

基本介绍

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

MATLAB功能

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

线2x+3yz=73x5y+3z=86x+3y8z=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的功能,包括:

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

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)]) 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值