MATLAB矩阵操作基础全解析
立即解锁
发布时间: 2025-09-05 02:00:29 阅读量: 14 订阅数: 38 AIGC 


MATLAB偏微分方程工程应用
### MATLAB矩阵操作基础全解析
#### 1. 矩阵元素引用与修改
在MATLAB中,矩阵元素的引用和修改是基础操作。例如,对于矩阵`M_V`:
```matlab
>>M_V(3,2) % 引用第3行第2列的元素
ans =
30
>>M_V(1:3,1) % 引用第1列的第1、2、3行元素
ans =
1
2
3
>>M_V(2,2:4) % 引用第2行的第2、3、4列元素
ans =
20.0000 1.0310 1.5690
>>M_V(3,:) % 引用第3行的所有列元素
ans =
3.0000 30.0000 1.0210 1.5700
>> M_V(2:4,2)=5.1 % 将第2行的第2到4列元素替换为5.1
M_V =
1.0000 10.0000 1.0616 1.5643
2.0000 5.1000 1.0308 1.5692
3.0000 5.1000 1.0206 1.5700
4.0000 5.1000 1.0154 1.5704
```
通过这些操作,我们可以方便地获取和修改矩阵中的特定元素。
#### 2. 矩阵转置
使用转置运算符`'`可以将行/列向量转换为列/行向量,也可以交换矩阵的行和列。示例如下:
```matlab
>>M_tr=M_V' % M_V'将矩阵的行和列交换,并赋值给M_tr
M_tr =
1.0000 2.0000 3.0000 4.0000
10.0000 5.1000 5.1000 5.1000
1.0620 1.0310 1.0210 1.0150
1.5640 1.5690 1.5700 1.5704
```
#### 3. 矩阵的数学运算
##### 3.1 加法和减法
矩阵的加法和减法是按元素进行的,要求两个矩阵的大小相等。设`M1`和`M2`是两个大小相等的矩阵:
```matlab
M1 =
[M11 M12 M13;
M21 M22 M23];
M2 =
[M21 M22 M23;
M21 M22 M23];
M = M1 ± M2 =
[M11 ± M21 M12 ± M22 M13 ± M23;
M21 ± M21 M22 ± M22 M23 ± M23];
```
加法和减法满足交换律,即`M1 ± M2 = M2 ± M1`。
##### 3.2 乘法
矩阵乘法遵循线性代数规则,只有当第一个矩阵的列数等于第二个矩阵的行数时才能进行乘法运算。例如:
```matlab
>> A1=[0.6 2.1;1.1 0.3;3.9 2.7] % 生成一个3行2列的矩阵
A1 =
0.6000 2.1000
1.1000 0.3000
3.9000 2.7000
>>A2=[2.2 2.3 0.1;
1.7 0.1 0.3;
0.5 0.8 2.4];
>>A1*A2 % A1的列数不等于A2的行数,会出现错误信息
Error using *
Incorrect dimensions for matrix multiplication. Check
that the number of columns in the first matrix matches
the number of rows in the second matrix. To perform
elementwise multiplication, use ‘.*’.
>>A=A2*A1 % A2的列数和A1的行数相等(都为3)
A =
4.2400 5.5800
2.3000 4.4100
10.5400 7.7700
```
矩阵乘法不满足交换律,即`M1 * M2`通常不等于`M2 * M1`。
矩阵乘法在工程问题中有广泛应用,例如可以将一组线性方程表示为矩阵方程`AX = B`。对于方程组:
```matlab
a11*x1 + a12*x2 = b1;
a21*x1 + a22*x2 = b2;
```
可以写成矩阵形式:
```matlab
[A] * [X] = [B];
其中,A = [a11 a12; a21 a22];
X = [x1; x2];
B = [b1; b2];
```
##### 3.3 除法
矩阵除法比乘法更复杂,涉及到单位矩阵和逆矩阵的概念。
- **单位矩阵**:对角线元素为1,其余元素为0的方阵称为单位矩阵`I`,在MATLAB中可以使用`eye`命令生成。例如:
```matlab
>>A=[80 90 27;14 10 9;12 9 94] % 生成一个3x3的方阵A
>>I=eye(3) % eye(3)生成一个3x3的单位矩阵I
I =
1 0 0
0 1 0
0 0 1
>> A*I
ans =
80 90 27
14 10 9
12 9 94
>>I*A % 结果与A*I相同
ans =
80 90 27
14 10 9
12 9 94
```
- **逆矩阵**:如果`AB = BA = I`,则矩阵`B`是矩阵`A`的逆矩阵。在MATLAB中,可以使用`A^-1`或`inv(A)`来表示逆矩阵。例如:
```matlab
>> A*A^-1
ans =
1.0000 0.0000 -0.0000
0.0000 1.0000 0.0000
0.0000 -0.0000 1.0000
```
- **左除和右除**:为了解决矩阵方程`AX = B`,使用左除`X = A\B`;对于方程`XC = B`,使用右除`X = B/C`。例如,对于方程组:
```matlab
5.1*x1 - 4*x2 = 16.8;
-3*x1 + 8*x2 = -7.3;
```
可以表示为矩阵形式:
```matlab
AX = B,其中A = [5.1 -4; -3 8]; B = [16.8; -7.3];
XC = D,其中C = [5.1 -3; -4 8]; D = [16.8 -7.3];
```
使用左除和右除求解:
```matlab
>>A=[5.1 -4; -3 8];
>>B=[16.8; -7.3];
>> X_left=A\B % 使用左除求解X
X_left =
3.6528
0.4573
>> C=A'; % C是A的转置矩阵
>> D=B'; % D是B的转置矩阵
>> X_right=D/C % 使用右除求解X
X_right =
3.6528 0.4573
```
#### 4. 元素级操作
在工程计算中,很多操作需要按元素进行,此时使用数组的概念。通过在运算符前加`.`来实现元素级操作,包括乘法`.*`、右除`./`、左除`.\`和幂运算`.^`。例如:
```matlab
>>a=[3.81 1.63; -3.37 0.05; -4.02 0.86] % 生成一个3x2的数组a
a =
3.8100 1.6300
-3.3700 0.0500
-4.0200 0.8600
>>b=[-0.32 -2.4; 0.73 -7.33; 0.07 0.95] % 生成一个3x2的数组b
b =
-0.3200 -2.4000
0.7300 -7.3300
0.0700 0.9500
>>a.*b % 元素级乘法
ans =
-1.2192 - 3.9120
-2.4601 -0.3665
-0.2814 0.8170
>>a*b % 矩阵乘法(无`.`)会出错
Error using *
Incorrect dimensions for matrix multi
```
0
0
复制全文
相关推荐










