Matlab中cell2mat,num2cell函数

1. Matlab函数cell2mat用法:
把一个由多个矩阵构成的元胞数组转换成一个矩阵。意即把元胞数组中的多个矩阵合并成一个矩阵。
需要注意的是并非任何情况下都能得到正确的结果。 要得到正确的结果, 一个基本要求是, 在元胞数组中,处于同行的矩阵要有相等的行数, 处于同列的矩阵要有相等的列数。
比如:
myCell= {A, B; C, D}
这里我们构造了一个2行2列的元胞数组, 其中A、B、C、D是四个矩阵。
如果
A:一行一列 B:一行三列
C:二行一列 D:二行三列
那么我们可以通过调用cell2mat将A、B、C、D合并成一个矩阵。
语法格式: m = cell2mat(c)

2. Matlab中num2cell的用法:
将数值阵列转换成异质阵列
num2cell 指令可将一数值阵列转换成异质阵列, 其使用语法为:
C = num2cell(A, dim)
其中 dim 是代表 「被切割」的维度,若不指定,则将每个元素视为异质阵列里面的一个 1×1 矩阵
将数值阵列转换成异质阵列(cont)
Ex:num2cell01.m
A = [1 2 3;4 5 6]; % 建立一个数值阵列 A
C = num2cell(A) % 将数值阵列 A 转成异质阵列 C
C =
[1] [2] [3]
[4] [5] [6]
将数值阵列转换成异质阵列(cont)
可以将上例数值阵列 A 中的每一直行, 转成异质阵列 D 的元素
Ex::num2cell02.m
A = [1 2 3;4 5 6]; % 建立的一个数值阵列 A
D = num2cell(A, 1) % 1 代表「横列被切割」
D =
[2x1 double] [2x1 double] [2x1 double
将数值阵列转换成异质阵列(cont)
也可以将数值阵列 A 的每一横列, 转成异质阵列 E 的元素
Ex:num2cell03.m
A = [1 2 3;4 5 6]; % 建立的一个数值阵列 A
E = num2cell(A, 2) % 2 代表「直行被切割」
E =
[1x3 double]
[1x3 double]
将结构阵列转换成异质阵列
struct2cell 指令可将一结构阵列的所有栏位值转换成异质阵列.
Ex:struct2cell01.m
student.name = 'Tim';
student.age = 8; %student为一struct
sCell = struct2cell(student)
sCell =
'Tim'

你可能感兴趣的:(MATLAB)