前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matlab入门(一)

Matlab入门(一)

作者头像
十二惊惶
发布2024-02-28 20:08:56
1420
发布2024-02-28 20:08:56
举报

Matlab入门(一)

[TOC]

1.Matlab系统环境

Matlab主窗口:

功能区:提供三个选项卡(主页,绘图,应用程序),各自有不同的工具可供使用;快速访问工具栏:包含一些常用按钮;当前文件夹工具栏:用于实现当前文件夹的操作。一定要先建立文件再将其设为工作文件夹。

命令行窗口

命令行窗口用于输入命令并显12示命令的执行结果。在命令提示符>>

  1. 使用path命令设置文件搜索路径。例如:>>path(path,’e:\work’)
  2. 用对话框设置文件搜索路径。 注:当前文件夹与搜索路径文件夹下均有同名m文件,会执行当前文件夹下的m文件。

工作区窗口: 是Matlab用于存储各种变量和结果的空间,可用于变量的显示和操作。在工作区以表格形式显示变量a与x的名称,取值等信息。在工作区还可以对变量进行保存、编辑、删除等操作。

设置文件搜索路径

MATLAB是在当前文件夹与搜索路径文件夹中寻找这个文件并执行文件内容的,所以要执行的文件必须放在这两类文件夹中。

  1. 使用path命令设置文件搜索路径。例如:>>path(path,’e:\work’)
  2. 用对话框设置文件搜索路径。 注:当前文件夹与搜索路径文件夹下均有同名m文件,会执行当前文件夹下的m文件。

2.Matlab的数值数据

**整型 : **

无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、无符号64位整数.带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、带符号64位整数。

浮点型:

在使用强制类型转化时,如x=int8(129)此时,x只会被置为int8(带符号数)的最大值127.

例如,uint8函数将数值数据转换为无符号8位整数,int8函数将数值数据转换为带符号8位整数。

浮点型数据分为单精度型和双精度类型,单精度型实数在内存中占用4个字节,而双精度型实数在内存中占用8个字节,所以双精度型的数据精度更高。

single函数:将其他类型的数据转换为单精度型。

double函数:将其他类型的数据转换为双精度型。

class函数可以得到参数的数据类型。

复型数据包括实部和虚部两个部分,实部和虚部默认为双精度型,虚数单位用i或|来表示。

代码语言:javascript
复制
real() %求复数的实部
imag() %求复数的虚部

数值数据的输出格式

Matlab可以用format函数设置数值数据的输出格式,

代码语言:javascript
复制
format 格式符  % 设置数据的输出格式

不同的格式符输出不同的数据格式,同时format命令只是影响数据输出的格式,而不影响数据的计算和存储。

常用数学函数

(1)函数的调用格式为:

代码语言:javascript
复制
函数名(函数自变量的值)

函数的自变量规定为矩阵变量(标量本身是矩阵的一种特例)。 函数在运算时是将函数逐项作用于矩阵的每个元素上,所以最后运算的结果就是一个与自变量同型的矩阵。

常用函数

三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以角度为单位的函数就在函数名后面加“d”,以示区别。

abs函数可以求实数的绝对值、复数的模、字符串的ASClI码值。

用于取整的函数有fix、floor、ceil、round。round函数按照四舍五入的规则取整。ceil函数是向上取整,取大于等于这个数的第一个整数。floor函数是向下取整,取小于等于这个数的第一个整数。fix函数是固定取靠近0的那个整数,即舍去小数取整。

代码语言:javascript
复制
isprime(n) # 判断n是否是素数,是返回1,否返回0.

3.变量及其操作

计算机处理的数据都是存放在内存单元中的,而每一个内存单元都有一个唯一的地址,程序就是通过这个地址来访问对应内存单元的。 在如Matlab这种高级语言中,只需要给每个内存单元取一个名字,然后通过这个名字就能访问每个内存单元了。

变量与赋值语句
  • 变量本质上讲是内存单元的一个抽象
  • 在Matlab中,变量名是以字母开头,后接字母、数字或下划线的字母序列,最多63个字符。

赋值语句两种格式

代码语言:javascript
复制
变量=表达式        % 变量结果会在命令行中显示出来
变量=表达式;	  % 变量结果不会在命令行中显示出来

Matlab语言还有一些预定义的变量,预定义变量是由系统本身定义的变量。如ans是默认赋值变量,i和j代表虚数单位,pi代表圆周率,NaN代表非数。

变量的删除和修改(who,whos)

在工作区选择变量右击即可进行删除和修改。 who命令和whos命令: who命令只显示已存在变量的名称。而whos显示包括变量类型,长度等信息。

内存变量文件(save,load)

用于保存Matlab工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件,是一种标准的二进制格式文件。 save命令:创建内存变量文件 load命令:载入内存变量文件

代码语言:javascript
复制
save mydata a x   % 将a x保存在mydata.mat文件中
load mydata       % 载入mydata.mat中的变量

4.MATLAB矩阵表示

矩阵的建立
冒号表达式:

1 用冒号产生行向量t:

代码语言:javascript
复制
t=0:1:5 %格式为: 初始值:步长:终止值

2 用linspace函数产生行向量x:

代码语言:javascript
复制
x=linspace(a:b:n)%(第一个元素:第二个元素:总数)

如果n忽略不写则自动生成100个数据。

结构矩阵和单元矩阵

结构矩阵:

在实际应用中,经常会遇到不同类型的数据项组成的实体,例如一个学生的数据实体就包括了年龄,姓名,学号,这些数据是相互联系的。结构数据类型就可以把这些数据类型不同但逻辑上相关的数据组成一个有机的整体。

代码语言:javascript
复制
结构矩阵元素.成员名=表达式

单元矩阵:

单元数据类型,也是把不同的数据放在一个变量中,但与结构矩阵所不同的是,结构矩阵的各个元素下还有成员,每个成员都有自己的名字,而单元矩阵的各个元素就是不同类型的数据,每个元素直接由不同类型的数据组成。

5.矩阵元素的引用

1 通过下标来引用矩阵的元素

2 通过序号来引用:在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列元 素,一直到矩阵的最后一列元素。矩阵元素的序号就是矩阵元素在内存中的排列顺序。

序号与下标是一—对应的,以m×n矩阵A为例,矩阵元素A(i.j)的序号为(j-1)×m+i。矩阵元素的序号与下标可以利用sub2ind和ind2sub函数实现相互转换。 sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:

代码语言:javascript
复制
D=sub2ind(S,I,J)%  S行数和列数组成的向量  I转换矩阵元素的行下标  J转换矩阵元素的列下标

ind2ind函数:将矩阵元素的序号转换成对应的下标,调用格式为:

代码语言:javascript
复制
[I,J]=ind2sub(S,D)% I行下标 J列下标 S行数和列数组成的向量 D序号

3 利用冒号表达式获得子矩阵(end)

子矩阵是指由矩阵中一部分元素构成的矩阵。

end运算符:表示某一维的末尾元素下标

可以利用空矩阵删除矩阵的元素,

4.改变矩阵的形状(reshape)

在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。

代码语言:javascript
复制
reshape (A,m,n)

注意:reshape函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。

A(:)将矩阵A的每一列元素堆叠起来成为一个列向量。

代码语言:javascript
复制
A(:)等价于 reshape(A,6,1)

6.Matlab基本运算

6.1算数运算
基本算数运算

基本算术运算符:+(加)、—(减)、*(乘) /(左除) \(右除)^乘方 MATLAB的算术运算是在矩阵意义下进行的。单个数据的算术运算只是矩阵运算的一种特例。

**加减运算:**若两矩阵同型,则运算时两矩阵的相应元素相加减。若两矩阵不同型,则MATLAB将给出错误信息,一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算.

乘法运算:矩阵A和B进行乘法运算,要求A的列数与B的行数相等,此时则称A、B矩阵是可乘的,或称A和B两矩阵维数和大小相容。如果两者的维数或大小不相容,则将给出错误信息,提示用户两个矩阵是不可乘的。

除法运算:MATLAB中,有两种矩阵除法运算:右除/和左除\。如果A矩阵是非奇异方阵,则B/A等效于B * inv(A),A\B等效于inv(A) * B。对于矩阵来说,右除和左除表示两种不同的除数矩阵和被除数矩阵关系。

代码语言:javascript
复制
左除: A / B = A * B ^ -1
右除: A \ B = A ^ -1 * B

乘方运算:一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。

点运算

**点运算:**两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵同型。Matlab中的点运算,就是对矩阵中的元素一一运算,基本的点运算有点乘、点除、点幂。

(点运算与算数运算的区别) .* 点乘 :将每个元素乘以一个数。

./ (左点除) :将每个元素除以一个数或者矩阵。如A ./ B A,B对应元素相除。(在点除的时候需要保证矩阵形式相同)

.\ (右点除) :

代码语言:javascript
复制
A.\3 %3除以A中对应元素
A.\ B%用每一个元素分别对应除以矩阵中的元素。

.^(点幂) :

代码语言:javascript
复制
A.^1.2 %A中每个元素的1.2次方
A.^B   %A中每个元素作为底数,B中对应元素作为次数,进行幂运算
3.^B   %以3为底、B中元素为次数

Matlab用%表示注释。

6.2 关系运算:

<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 当参与比较的量是两个同型的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。当参与比较的一个是标量,而另一个是矩阵时则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,它的元素由0或1组成。

6.3 逻辑运算

:&(与)、I(或)和~(非)。 设参与逻辑运算的是两个标量a和b,那么运算规则为:a&b a、b全为非零时,运算结果为1,否则为0。alb a、b中只要有一个为非零时,运算结果为1。~a当a为零时,运算结果为1;当a为非零时,运算结果为0。

在算术运算、关系运算和逻辑运算中,算术运算的优先级最高,逻辑运算优先级最低,但逻辑非运算是单目运算,它的优先级比双目运算要高。单目是涉及一个元素的运算,双目是涉及两个的运算。 若参与逻辑运算的是两个同型矩阵,那么将对矩阵相同位置上的元素按标量规则逐个进行运算,最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。若参与逻辑运算的一个是标量,一个是矩阵,那么将在标量与矩阵中的每个元素之间按标量规则逐个进行运算,最终运算结果是一个与原矩阵同型的矩阵,其元素由1或0组成。

7.Matlab中的.m文件

.m文件分为两类

  1. 脚本文件,不传参数只执行计算等功能。 脚本文件只是一个计算模块,保存文件名时可以在满足命名规则的基础上任意命名。
  2. 函数文件,需要传参数,返回计算结果。 函数文件必须以关键字function开头,一般需要传参数和返回值,在保存是必须以函数名作为文件名保存。 注意在调用自己编写的函数时,调用的函数与被调用的函数必须放在同一文件夹下
  3. 脚本文件和函数文件可以相互转换

8.Matlab中的基本语句

条件语句
  1. 格式1 if end条件语句
  2. 格式2 if else end 条件语句
  3. 格式3 if else elseif end 条件语句
  4. switch语句,适用于有更多选项的程序。
  5. try语句try语句尝试执行语句1,如果在执行过程中出现错误,则转去执行语句组2.
循环语句
  1. for-end循环,for循环变量由初值,步长和终值决定,内部为循环体语句。for语句更一般的格式为 for 循环变量=矩阵表达式,然后执行循环体语句直到各列元素处理完毕。

蒙特卡罗方法求概率,用随机数模拟实际过程的方法。

二分法求根的编程思路1,定义求根的函数2,主函数使用while循环比较合适。

Matlab中的数组下标是从1开始的。

Matlab以矩阵或向量为元素进行运算,可以减少循环,从而减少运行时间,点运算是Matlab的特点

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Matlab入门(一)
    • 1.Matlab系统环境
      • 2.Matlab的数值数据
        • 常用数学函数
      • 3.变量及其操作
        • 变量与赋值语句
        • 变量的删除和修改(who,whos)
        • 内存变量文件(save,load)
      • 4.MATLAB矩阵表示
        • 矩阵的建立
        • 冒号表达式:
        • 结构矩阵和单元矩阵
      • 5.矩阵元素的引用
        • 6.Matlab基本运算
          • 6.1算数运算
          • 6.2 关系运算:
          • 6.3 逻辑运算
        • 7.Matlab中的.m文件
          • 8.Matlab中的基本语句
            • 条件语句
            • 循环语句
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档