MATLAB小常识
;
表示不显示运行结果
%
加注释 (快捷键Ctrl+R)
取消注释 (Ctrl+T)
clear
清空工作区所有变量
clc
清空命令行窗口
输出和输入函数
输出函数: disp() (有无分号,无影响)
向量a = [1,2,3]
同一行中间可以用逗号分隔,也可以用空格
连接字符串:strcat(‘字符串1’,‘字符串2’) 或用向量连接[’’,’’]
num2str() 数字转换为字符串
input() 输入函数
sum函数
- 如果是向量(无论是行向量还是列向量),都是直接求和
- 如果是矩阵,则需要根据行和列的方向作区分
sum(A)或sum(A, 1) 按列求和
sum(A, 2) 按行求和
sum(sum(A))或sum(A(: )) 对整个矩阵求和
提取矩阵中指定位置的元素
- 取指定行和列的元素 A(a, b)
- 取指定的某一列的全部元素 A(a, : )
- 取指定的某一行的全部元素 A(:, b)
- 取指定的某些行的全部元素
A([a, b], : ) 取第a行和第b行的元素
A(a: b, : ) 取第a行到第b行的元素
A(a: m: b, : ) 取第a行到第b行的元素(从第a行到第b行,每次递增m个单位)
A(a: end, : ) 取第a行到最后一行
A(a: end-1, : ) 取第a行到倒数第二行 - 取全部元素(按列拼接,生成一个列向量) A(: )
size函数
size(A)
求矩阵大小返回a b对应行数 列数
[r, c] = size(A)
变量r,c返回行数,列数
r = size(A, 1) 返回行数
c = size(A, 2) 返回列数
repmat函数
repmat(A, m, n) 将矩阵A复制m×n块
或者用for循环
模板:
B = [];
for i = 1:n (循环,从1到n递增)
B = [B; A]
end
矩阵的运算
乘法:A*B
除法:先求矩阵的逆运算 inv(B) A/B=A*inv(B)
两个形状相同的矩阵对应元素之间的运算:
点乘 .* 和点除 ./
A.*B A./B
矩阵与常数之间的运算
A*a或A.*a A/a或A./a
每个元素同时乘方 A.^a
prod(A, 2) 按行相乘得到一个新的列向量
求特征值和特征向量
- E=eig(A)
向量E为A的全部特征值 - [V, D] = eig(A)
V是特征值对应的特征向量
D是矩阵A的全部特征值组成的对角矩阵
find函数
find(X)
返回矩阵或向量中不为零的元素的位置索引
find(X, a)
返回返回矩阵或向量中前a个不为零的元素的位置索引
[r, c] = find(X) 按照行列返回不为零的元素的位置索引
矩阵与常数的大小判断运算 < > ==(真为1,假为0)
判断语句:
if所在的行不需要冒号,语句最后要以end结尾,中间语句要缩进
模板:
if a >= 85
disp(‘best’)
elseif a>= 60
disp(‘good’)
else
disp(‘bad’)
end