文章目录
Matlab视窗
我这里用的是汉化版的Matlab。
Matlab作为计算器使用
比如
operators: + - * / ^
运算的结果会保存到变量ans中
运算规则
从左至右按照运算符的优先级运算
运算符优先级
- Parenthesis ()
- Power (^)
- Multiplication and division (*,/)
- Addition and subtraction (+,-)
对数和指数运算
自然对数
以2为底数(base)的函数为
log2
以10为底数的函数为
log10
嵌套函数
函数可以嵌套使用
比如
sin(cos(pi))
它的计算结果和
cos(pi)
sin(ans)
相同
这里体现了两种书写函数的方法,对于很长、复杂的表达式,第二种可能更不易出错。
变量Variables
在matlab中,变量不需要被声明。
命令
A=10
就创建了一个名为A的变量,并且值为10
matlab中的variables的default类型是double
查看工作区中有哪些变量的指令
who
查看变量的更详细信息
whos
Matlab中的一些预置的变量和常量:
比如
ans
是被matlab使用的一个variables,因此自己使用的variables不能叫ans
i,j:complex number
不能使用i,j作为自己的变量
Inf表示无穷大
比如
esp:2.2204e-016
表示无穷小
NaN:not a number
pi: 圆周率
使用命令
iskeyword
可以显示关键字
Matlab的调用优先级
因此,假如把关键字cos设置成了变量,则在想要使用cos函数的时候就会出错。
cos = 'This string.'
cos(8)
得到的结果是字符r
(注意第一个字符的index是1而不是0)
删除variables的方法
clear 变量名
即可
如果直接
clear
则会删除所有variables
因此删除前要谨慎
数据显示格式
rat表示rational有理数
例如
表示圆周率的值
分号
在命令末尾加上分号会不显示该命令的运算结果。
其他
上下键可以翻阅历史命令
clc:清空命令行窗口命令
clear:清除工作区的所有变量
who:查看工作区有哪些变量
whos:查看工作区变量的具体信息
矩阵输入
把元素放在中括号中
输入行向量
元素之间用空格分开
a=[1 2 3 4]
输入列向量
元素之间用分号隔开
b=[1;2;3;4]
从行向量和列向量的输入方法可自然地得到输入一个矩阵方法:
行向量元素用空格隔开,输完一个行向量后分号接着输入第二行的行向量。
比如
Array Indexing
如何指定矩阵中的某个元素?
方法是矩阵 + 括号,括号中指定矩阵元素的下标即可
指定矩阵元素下标有以下两类方法
带逗号
矩阵的第一行的行号为1,第一列的列号为1,以此类推。
指定一个元素
矩阵变量名(行号,列号)
比如
A(3,2)
指定多个元素(选出一个子矩阵)
矩阵名([行号 行号…],[列号 列号…])
比如
A([1 3],[1 3])
不带逗号
则矩阵每个元素的标号为从左上角元素开始一列列从标号1排下去
比如
则
A(8)
A([1 2 5])
A([1 3;1 3])
的效果如下
替换矩阵元素
知道怎么Indexing矩阵元素后,就可以指定替换矩阵中的元素了
方法是
矩阵名(元素index) = 要改成的值
冒号操作符
需要创建一个很长的向量时,可以用分号操作符
语法:
j:k
效果:创建一个行向量,从j开始,以1为等差直到k
j:i:k
效果:创建一个行向量,从j开始,以i为等差直到k
利用创建行向量的方法加上分号就可以创建矩阵
合并数组
矩阵操作符
操作符主要有
下面7种
+
-
*
/
^
.
'
主要提醒一下矩阵点乘、点除是两个同型矩阵对应元素相乘、除
操作符
'
是将矩阵转置
比如
A'
除/的效果类似于左边的矩阵乘以右边矩阵的逆矩阵
即
A/B约等于A*inv(B)
但是不完全相等
矩阵+一个数
结果是把这个数加到这个矩阵的每个元素上
矩阵除一个数
结果是把矩阵每个元素都除以这个数
这时矩阵点乘、点除一个数和直接乘一个数、除一个数效果相同
操作
矩阵.^数字a
的效果是把矩阵每个元素都变成原来的a次方
矩阵转置
总之可参照下表来对矩阵进行数学运算
生成一些特殊矩阵的函数
eye(n)
生成一个n维单位矩阵
zeros(n1,n2)
生成n1行n2列的零矩阵
ones(n1,n2)
生成n1行n2列的元素全为1的矩阵
diag([从左上到右下的对角元素,元素之间用空格隔开])
生成对角矩阵diagonal matrix,对角元素为输入值,其余元素为0
rand(n1,n2)
生成n1行n2列的元素均为0到1的随机值的矩阵
一些与矩阵相关的函数
假如A是
max(A)
得到一个行向量,每个元素的值分别是矩阵A每一列的元素的最大值
max(max(A))
两次max则得到矩阵中最大的元素
min类似
sum(A)
会把A的每一列求和,得到一个行向量
两个sum则把全部元素加起来得到一个数
mean(A)
把A的每一列求平均得到一个行向量
两个mean就是所有元素的平均
sort(A)
把A的每一列的元素从小到大排列(小的在上)
sortrows(A)
按A的第一列的元素的大小把A的各行从小到大排列
size(A)
得到矩阵的行数和列数
length(A)
得到向量A的长度
find(A==数字)
找到A中该数字的下标
下标是这种方式排列的