MATLAB基础笔记

本文最后更新于:2022年7月21日 下午

MATLAB基础笔记

基本参考MATLAB是什么? (biancheng.net)文档主页 - MathWorks 中国

变量、类型、关键字

变量

变量和Python一样不用声明,变量名别奇奇怪怪的就行。

特殊变量 意义
pi 圆周率
ans 默认变量
i或者j 复数
eps 最小数
inf 无穷大
NaN not a number

创建矩阵的时候,用,隔开一行中的元素,用;分隔列。

1
2
3
4
5
6
x = [1,2;3,4]

ans =

1 2
3 4

通常创建矩阵的方式:

  • a:b:c:生成整数序列,即从a开始步长为b,一直到不小于c的数
  • linspace(start, end, n):包括start和end,生成线性的n个数据。
  • ones(),zeros(),eye():全1,全0,对角矩阵
  • rand(),randn():均匀分布、正态分布

类型

查看类型可以用class,查看维度等详细信息可以用whos()

NaN类型可以用isnan()找出矩阵中的NaN,有NaN的地方是1。找出之后可以用find()继续找到索引位置。

1
2
3
$ 把数组中NaN类型变成0的代码
i = find(isnan(a))
a(i) = zeros(size(i))

空数组

就是没有元素的数组,假如find()不到东西,可能就会返回这个。空数组用x = []创建。判断空数组用isempty(x)

逻辑运算

MATLAB里等于是==,但是不等于是~=。

&表示与,|表示或,~表示取反,any(x)表示x里any not 0 in x,all(x)表示all not 0 in x。

数学运算符

'transpose(x):转置

+、-:加减法 sum():求和

.*:按元素乘法 *:矩阵乘法

.^:按元素求幂 ^:矩阵幂

mod():模

round()floor()ceil():四舍五入、往下、往上

下标/索引

下标从1开始!!!!

下标从1开始!!!!

下标从1开始!!!!

下标用()表示,先行再列,不能用负数下标但是可以用end表示最后一行(用end-1访问倒数第2个元素),其它和python差不多。

下标内容可以是一维数组,也就是说可以用x([1,5,6])这种方法。

而索引指的是把矩阵拍扁之后的序号,对于矩阵,下标可以是一个二维坐标,而索引是一个数字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
A=
8 1 6
3 5 7
4 9 2
元素 索引 下标
8 1 (1,1)
3 2 (2,1)
4 3 (3,1)
1 4 (1,2)
5 5 (2,2)
9 6 (3,2)
6 7 (1,3)
7 8 (2,3)
2 9 (3,3)

循环、条件

条件语法如下,不用冒号不用括号,按照缩进分隔,用end结尾

1
2
3
4
5
6
7
if expression
statements
elseif expression
statements
else
statements
end

循环语法如下,用end结尾,可以用break和continue,values可以是次数也可以是可遍历的结构

1
2
3
4
5
6
7
for index = values
statements
end

while expression
statements
end

函数

需要在文件中创建,文件名是函数名,function [y1,...,yN] = myfun(x1,...,xM):声明名为 myfun 的函数,该函数接受输入 x1,...,xM 并返回输出 y1,...,yN