矩阵的四则运算:
在 MATLAB 中,常规的四则运算(加、减、乘、除)对于矩阵运算相当直观。
- 加法 (
+
) 和 减法 (-
): 矩阵的加法和减法运算按元素执行,即对应元素之间进行操作。这就要求两个矩阵的维度必须相同。
A = [1 2 3; 4 5 6; 7 8 9];
B = [10 20 30; 40 50 60; 70 80 90];
C = A + B
D = A - B
- 乘法 (
*
) 和 除法 (/
):
-
对于矩阵的乘法,不是按元素进行操作,而是按照线性代数中的矩阵乘法规则(假设 A 是一个 m×n 的矩阵,B 是一个 n×p 的矩阵,那么 AB 是一个 m×p 的矩阵)。要求左边矩阵的列数和右边矩阵的行数必须相同。
A = [1 2 3; 4 5 6] B = [7 8; 9 10; 11 12] C = A * B % 结果是一个 2×2 的矩阵
-
对于矩阵的除法,例如
A/B
其实是计算A*inv(B)
,其中inv(B)
为 B 矩阵的逆(当 B 是可逆的话)。与乘法类似,这种除法也需要满足特定的大小约束。A = [3 4; 2 16] B = [7 8; 5 6] C = A / B % 结果是一个 2×2 的矩阵
注意:如果你想按元素进行乘法或除法运算,你需要使用 .*
和 ./
操作符。
A = [1 2 3; 4 5 6; 7 8 9];
B = [10 20 30; 40 50 60; 70 80 90];
C = A .* B
D = A ./ B
练习:
A = [1 2 3;4 5 3;7 8 9];
B = [1 0 3;6 1 0;3 4 1];
C = A + B;
D = A - B;
E = A*A';
F = B*inv(B);
G = A * inv(A);
a = rank(A);
b = rank(B);%%求举证的秩
H = A.*B;%%对应项相乘
程序结构:
1. if
语句
if
是条件执行语句,基本语法如下:
if condition
% 执行语句
end
if-else
形式如下:
if condition
% 执行语句
else
% 其他执行语句
end
也可以用 if-elseif-else
形式:
if condition1
% 执行语句
elseif condition2
% 执行语句
else
% 其他执行语句
end
2. while
语句
while
是循环结构,基本语法如下:
while condition
% 执行语句
end
3. for
语句
for
是循环结构,基本语法如下:
for index = values
% 执行语句
end
values
是一个向量,它定义了 index
的取值范围。
示例
if
语句:
x = 10;
if x > 5
disp('x 大于 5')
end
while
语句:
n = 1;
while n <= 5
disp(n)
n = n+1;
end
for
语句:
for n = 1:1:5 %% 赋值 :步长 :最大值
disp(n)
end
matalb的程序的结构与c语言稍有些不同
A = magic(3); %%生成一个三行三列的幻方矩阵
B = A(3,2);%%取三行二列的元素
C = A(3,:);%%取第三行的所有元素
D = A(:,3);%取第三列的所有元素
[m,n]=find(A>6);%%也就是找m行n列A中大于6的元素,并将m n找出
for i = 1:1:3 %%行遍历
for j=1:1:3 %%列的遍历
c = A(i,j); %%赋值
disp(c); %%打印c
end
end
while j>0 %%判断语句,
disp(A);
j = j-1;
end
if j==0 && i > 0 %%j等于零 并且 i大于零
disp('对对对')
elseif j ~= 0 || i>0 %% j 不等于零或者 i 大于零
disp('错错错')
else
disp('好好好')
end
输出结果:
8
1
6
3
5
7
4
9
2
8 1 6
3 5 7
4 9 2
8 1 6
3 5 7
4 9 2
8 1 6
3 5 7
4 9 2
对对对
>>