>> a = pi
a = 3.1416
>> format short e
>> a
a = 3.1416e+00
>> format long e
>> a
a = 3.141592653589793e+00
>> format long
>> a
a = 3.14159265358979
>> format short
>> a
a = 3.1416, which is the default format
clc 删除command window的内容
clear all删除workplace的内容
//行向量 v = [1 2 3 4 5] % 用空格分隔元素 v = [1, 2, 3, 4, 5] % 用逗号分隔元素(效果相同) //列向量 u = [1; 2; 3; 4; 5] % 用分号分隔元素 u = v' % 转置为列向量
有时会跨行显示,Columns 1 through 3
:显示矩阵的第 1 到第 3 列数据,Columns 4 through 5
:显示矩阵的第 4 到第 5 列数据
矩阵的加法和乘法
10/2 = 2\10(被除) = 5
>> v = [1 2 3 4 5]
v =
1 2 3 4 5
>> w=[5;6;7;8;9]
w =
5
6
7
8
9
>> a = v' + w
a =
6
8
10
12
14
>> b = v' * w
b =
115
>> c = w * v
c =
5 10 15 20 25
6 12 18 24 30
7 14 21 28 35
8 16 24 32 40
9 18 27 36 45
定义函数
function [输出参数1, 输出参数2, ...] = 函数名(输入参数1, 输入参数2, ...)
% 函数体:实现具体功能的代码
% 可包含运算、逻辑判断、循环等
输出参数1 = 计算结果;
% ... 其他操作
举例:
function a = addtion(b,c)
a = b+c
v = [1,2,3,4,5]
w = [1;2;3;4;5]
x = addtion(v',w)
%x = [6;810;12;14]
% 注释,可以用help函数名的方式查看说明文档,自定义的函数会显示注释内容
sum函数
;是换行的意思
A = [1, 2; 3, 4];
% 按列求和:第一列 1+3=4,第二列 2+4=6 → 结果行向量 [4, 6]
S_col = sum(A, 1);
% 按行求和:第一行 1+2=3,第二行 3+4=7 → 结果列向量 [3; 7]
S_row = sum(A, 2);
% 对矩阵所有元素求和则嵌套一层,和下面的mean类似
sum(sum(A)) %10
%老师的例子:
v = [1,2,3,4,5]
y =sum(v,1) %[1,2,3,4,5]
y = sum(v,2) %15
:的用法 – 表示矩阵
>> v1 = 1:5 % 默认步长为1,输出 [1 2 3 4 5]
>> v2 = 1:2:10 % 步长为2,输出 [1 3 5 7 9]
>> v3 = 5:-1:1 % 递减序列,输出 [5 4 3 2 1]
>> v4 = 0:pi/4:pi % 输出 [0, pi/4, pi/2, 3pi/4, pi]
length的用法
%返回向量的元素个数
v = [1, 2, 3, 4]; % 行向量
n = length(v); % n = 4(4个元素)
%返回矩阵行数和列数中的最大值
A = [1 2; 3 4; 5 6]; % 3行2列矩阵
n = length(A); % n = 3(行数3 > 列数2,取最大值)
r=[1:2:6,−1:−2:−7],
which denotes the vector
r=1 3 5 −1 −3 −5 −7,
we get:
− r(3:6)⇒ans=5 −1 −3 −5
− r(1:2:7)⇒ans=1 5 −3 −7
− r(6:−2:1)⇒ans=−5 −1 3
Size函数的用法
A = [1 2 3; 4 5 6];
sz = size(A);
% sz 结果为 [2, 3],表示 2 行 3 列
其他常用函数
sqrt(100) %10
v = [1, -2, 3];
n1 = norm(v, 1); % 1-范数(曼哈顿范数 )向量元素绝对值之和,结果 6
n2 = norm(v); % 2-范数(默认),结果√(1² + (-2)² + 3²)=√14≈3.7417
mean函数的用法
%向量的平均值(一维数据 )
v = [1, 2, 3, 4, 5];
avg = mean(v); % avg = 3((1+2+3+4+5)/5 = 3)
%矩阵的平均值(二维数据 )
dim = 1:按列计算(同默认 )。
dim = 2:按行计算,返回列向量
A = [1 2 3;
4 5 6];
% 按列平均:(1+4)/2=2.5, (2+5)/2=3.5, (3+6)/2=4.5 → [2.5, 3.5, 4.5]
col_avg = mean(A);
% 按行平均:(1+2+3)/3=2, (4+5+6)/3=5 → [2; 5]
row_avg = mean(A, 2);
%计算矩阵所有元素的均值可以通过嵌套mean函数实现
mean(mean(A))= (2.5+3.5+4.5)/3 = 3.5
如果未指定维度(如mean([1,2,3])
),MATLAB 会自动寻找第一个长度大于 1 的维度进行计算。
对于行向量[1,2,3]
如果指定的维度不存在(例如对行向量按 dim=2 求均值),则返回原数组。
例如:mean([1,2,3], 2)
返回 [1,2,3]
。
Matrix Algebra 矩阵代数
- A(X,Y)矩阵第X行第Y列的元素
A(1:4, 4)
:提取矩阵A
第 4 列、行号 1 到 4 的元素,即第 4 列的前 4 行,形成一个向量
:
表示所有行(或所有列,看在哪个维度 )
end
:MATLAB 关键字,代表最后一个索引(行或列的末尾 )
A(:, end)
:提取矩阵A
的最后一列、所有行的元素,形成向量。
基础矩阵
矩阵的算术运算
矩阵点乘(Element-wise multiplication). *:将两个矩阵中对应位置的元素相乘,结果矩阵的维度保持不变。
矩阵乘法(Matrix multiplication) *:条件左列 = 右行,,,
矩阵之间没有除法,但是矩阵中的元素可以进行除法,比如A./2,即A矩阵的所有元素都除2
Identity矩阵
>> eye(2)
ans =
1 0
0 1
diag
v = diag(X) | 等价于 diag(X, 0) ,提取矩阵 X 的主对角线元素 |
for循环(非重点)
for 循环变量 = 迭代序列
% 循环体:要重复执行的代码
end
%遍历数值区间:遍历 1 到 5,每次循环变量 i 取对应值
for i = 1:5
disp(['当前循环变量值:', num2str(i)]);
end
%遍历向量元素
行列式、逆矩阵、秩(重点)
det(A)
inv(A)
rank(A)
adj(A):求A矩阵的伴随矩阵
特征值和特征向量(重点)
eig eigen value
解方程组(必考)
gossian jordon 高斯 – 若尔当消元法
把线性方程组的增广矩阵(或普通矩阵)转化为简化行阶梯形矩阵,有以下应用
- 直接求解线性方程组的解(唯一解、无穷多解的通式 );
- 计算方阵的逆矩阵(构造增广矩阵
[A | I]
,通过变换得到[I | A⁻¹]
); - 判断矩阵的秩(简化行阶梯形中主元的数量 )。
rref(A)- 将矩阵化作
Reduced Row Echelon Form形式
一个矩阵称为简化行阶梯形矩阵,需满足四个条件:
- 主元为 1:每行第一个非零元素(主元)为
1
; - 主元列唯一:每个主元列只有该主元为
1
,其余元素全为0
; - 主元位置递增:下一行的主元必须在上一行主元的右侧;
- 零行在底部:所有全零行位于矩阵底部。