本文档详细介绍了MATLAB中的两个重要函数——sum与size的使用方法。通过实例讲解了如何利用这些函数进行数组操作,帮助读者掌握高效的数据处理技巧。适合初学者及编程爱好者参考学习。
Matlab函数sum与size的用法
### sum 函数解释:
**功能:**
求数组元素的总和。
**使用方法:**
- **B = sum(A)**
返回数组A不同维数上的总和。
- 如果A是一个向量,`sum` 返回所有元素的总和。
- 如果A是一个矩阵, `sum` 把每一列看作一个向量,并返回包含每列所有元素总和的一个行向量。对于多维数组,该函数沿第一维度计算并返回结果。
- **B = sum(A,dim)**
使用指定标量dim沿着A的每个维度进行求和操作。
- 当`dim=1`时, 求每一列的总和;当`dim=2`时,则是行向量上的每行元素之和,以此类推。
**数据类型支持:**
- **B = sum(A)**
在双精度下执行加法操作并返回double类型的数值结果。即使输入数组A的数据类型为single或integer,输出结果依然为double。
- **B = sum(A,native)**
使用原生数据类型进行计算,即如果输入是`single`, 输出也为 `single`; 如果输入是`int8`,`uint8`, 等等,则返回相应类型的数值。
**备注:**
求矩阵X的迹(对角线元素之和)可以用B = sum(diag(X))实现。
### 应用举例:
三阶幻方为:
```matlab
M = magic(3)
```
输出结果是:
```
8 1 6
3 5 7
4 9 2
```
因为每一列元素总和相等,所以`sum(M)`的结果也是每行的总和。如果想求出每一行的总和,则可以使用矩阵转置或者指定dim参数的方式。
```matlab
% 转置后计算:
sum(M)
% 使用 dim 参数:
sum(M,2)
```
输出结果均为:
```
15 15 15
```
### size 函数解释:
- **d = size(A)**
返回矩阵A的行数和列数,并保存在变量`d`中。
```matlab
x=[2];
size(x); % 输出为 [1, 1]
y=[2,3];
size(y); % 输出为 [1, 2]
```
- **[m,n] = size(A)**
返回矩阵A的行数和列数,分别保存在变量`m`和`n`中。
```matlab
[m,n]=size([5,6]);
% m=1 n=2
```
- **dim参数使用:**
- `m=size(rand(3),1)` 返回随机矩阵的第一维(行)的长度,输出为3;
- `m=size(rand(3,4),2)` 则返回第二维度(列)的数量,即4。
- 多维数组:
```matlab
xx=[1,2; 3,4];
[d1,d2]=size(xx); % 输出 d1=2 d2=2
```
对于更高维度的矩阵,可以类似地使用`[d1,d2,...] = size(A)`来获取各维度的大小。