是否有任何内置函数可以在matlab中显示矩阵中的所有子矩阵? 为了显示一个子矩阵,我们有函数x(:,m:n)。 例如:考虑一个4 x 4矩阵
A = 14 11 16 16
15 2 16 8
3 5 3 13
15 9 16 3
如果所有子矩阵的大小是1 x 2,如何显示A中存在的所有子像素?另外如何用变量表示每个子矩阵(例如:a1,a2..etc)
a{1}=[14 11]
a{2}=[16 16]
.
.
a{8}=[16 3]
如何以单元格数组的形式显示所有子矩阵?请帮忙。提前谢谢
答案 0 :(得分:1)
您可以使用mat2cell命令根据需要拆分原始矩阵,然后使用cell2mat再次将结果作为(子)矩阵。在您的特定示例中,使用与上面相同的matix A,您可以这样使用它:
B = mat2cell(A,[1 1 1 1],[2 2])
cell2mat(B(1,1))
ans =
14 11
cell2mat(B(1,2))
ans =
16 16
cell2mat(B(4,2))
ans =
16 3
答案 1 :(得分:1)
将线性数组重新整形为您想要的任何格式,在这种情况下,x
矩阵为2,因此每行都是一个子矩阵。
reshape(reshape(A', numel(A), 1), 2, numel(A)/2)'
如果要将结果转换为单元格,可以使用命令mat2cell()
。