目录
基础知识
表达式- MATLAB & Simulink- MathWorks 中国
| 逐元素幂 |
| 非共轭数组转置 |
| 除法 |
| 左除 |
数字
MATLAB 使用传统的十进制记数法以及可选的小数点和前导加号或减号来表示数字。科学记数法使用字母 e
来指定 10 次方的缩放因子。虚数使用 i
或 j
作为后缀。下面给出了合法数字的一些示例:
3 -99 0.0001 9.6397238 1.60210e-20 6.02252e23 1i -3.14159j 3e5i
有关初等数学函数的列表,请键入
help elfun
有关更多高等数学函数和矩阵函数的列表,请键入
help specfun help elmat
常量值:
3.14159265... | |
虚数单位 √−1 | |
与 | |
浮点相对精度 ε=2−52 | |
最小浮点数 2−1022 | |
最大浮点数 (2−ε)21023 | |
无穷 | |
非数字 |
数据结构
矩阵和数组
矩阵和数组- MATLAB & Simulink- MathWorks 中国
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 矩阵
a = [1 3 5; 2 4 6; 7 8 10] % 创建矩阵
a(2,2) % 访问矩阵第二行第二列的元素4
a(5) % 访问元素4, 从第一列往下数起的第5个数是4
% 使用 ones、zeros 或 rand 等函数创建矩阵
z = zeros(5,1) % 创建一个由零组成的 5×1 列向量
a' % 转置矩阵
inv(a) % 逆矩阵
p = a.*a % 点乘,相应位置的元素相乘
a.^3 % 计算 a 的各个元素的三次方
X(:,2) = [] % 删除 X 的第二列
sum(A) % 每一列相加求和,得到行向量
sum(A,2) % 每一行相加求和,得到列向量
diag(A) % 主对角线求和
diag(fliplr(A)) % 次对角线求和
fliplr(A) % 从左往右地翻转矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 数组
perms(1:4) % 1~4的全排列
% 创建元胞数组
C = {A sum(A) prod(prod(A))}
prod(A) % A是矩阵,prod(A)算出每列元素的乘积 结果是一个行向量
生成矩阵:
MATLAB 软件提供了四个用于生成基本矩阵的函数。
全部为零 | |
全部为 1 | |
均匀分布的随机元素 | |
正态分布的随机元素 |
矩阵的串联
数组索引
越界添加新元素:
A(1:3,2) % 选出1~3行、第2列的元素
逻辑下标
括号内表达式相当于判断条件:
x = x(isfinite(x)) % 用于删除NaN x = x(abs(x-mean(x)) <= 3*std(x)) % 删除x中比均值大三倍标准差的元素 A(~isprime(A)) = 0 % 将非质数设置为 0
find函数
find 函数可用于确定与指定逻辑条件相符的数组元素的索引。find
以最简单的形式返回索引的列向量。转置该向量以便获取索引的行向量。例如,再次从丢勒的幻方矩阵开始。(请参阅 magic 函数。)
k = find(isprime(A))'
使用一维索引选取幻方矩阵中的质数的位置:
k = 2 5 9 10 11 13
使用以下命令按 k
确定的顺序将这些质数显示为行向量
A(k) ans = 5 3 2 11 7 13
将 k
用作赋值语句的左侧索引时,会保留矩阵结构:
A(k) = NaN A = 16 NaN NaN NaN NaN 10 NaN 8 9 6 NaN 12 4 15 14 1
元胞数组
- 检索元素用 { } 而不是 [ ] 或 ( ) ,如
C{1}
- 元胞数组包含其他数组的副本,而不包含指向这些数组的指针。如果随后更改 C,
C
不会发生变化。
结构体
S.name = 'Ed Plum';
S.score = 83;
S.grade = 'B+'
直接添加元素:
S(2).name = 'Toni Miller';
S(2).score = 91;
S(2).grade = 'A-';
S(3) = struct('name','Jerry Garcia',...
'score',70,'grade','C')
scores = [S.score]
avg_score = sum(scores)/length(scores)
[N1 N2 N3] = S.name
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function avg = avgscore(testscores, student, first, last)
for k = first:last
scores(k) = testscores.(student).week(k);
end
avg = sum(scores)/(last - first + 1);
testscores.Ann_Lane.week(1:25) = ...
[95 89 76 82 79 92 94 92 89 81 75 93 ...
85 84 83 86 85 90 82 82 84 79 96 88 98];
avgscore(testscores, 'Ann_Lane', 7, 22)
线性代数
A = pascal(3) % 帕斯卡矩阵
C = randi(10,3,2) % 由随机整数构成的 3×2 矩形矩阵 范围1~10
z.' % z中每个元素都是复数,则是非共轭复数转置(虚部变号)
% 单位矩阵
eye(m,n) 返回 m×n 矩形单位矩阵,eye(n) 返回 n×n 单位方阵
% 求逆矩阵
X = inv(A)
d = det(A) % det计算矩阵的行列式,正好为零时,矩阵为奇异矩阵,因此不存在逆矩阵
c = cond(A) % 计算逆运算的条件数,它指示矩阵求逆结果的精度。条件数的范围是从 1(数值稳定的矩阵)到 Inf(奇异矩阵)。
% Kronecker 张量积
% 向量范数和矩阵范数
| 表示使用 |
| 表示使用 |
网址
format:设置输出显示格式 - MATLAB format- MathWorks 中国
magic 幻方矩阵:幻方矩阵 - MATLAB magic- MathWorks 中国 M = magic(n)
返回由 1
到 n^2
的整数构成并且总行数和总列数相等的 n
×n
矩阵。n
的阶数必须是大于或等于 3
的标量。每列元素的总和等于每行元素的总和。