是否可以在不使用for-loop的情况下将矩阵添加到结构“列”?例如,我有一个包含3个字段的结构
A.name
A.grade
A.attendance
现在A.attendance
需要1x5矩阵。如果我有一个5x5矩阵,我可以直接将它插入结构A的5行吗?
A(1:5).attendance = B
其中B是5x5矩阵
答案 0 :(得分:6)
您可以将B
转换为其行的单元格数组
C = mat2cell(B, ones(size(B,1),1), size(B,2))
然后你可以分配如下
[A(1:size(B,2)).attendance] = C{:};
答案 1 :(得分:6)
如果B
实际上是一个5元素的单元格数组,其中每个元素都是 1 -by- 5 矩阵(实际上每个元素都可以包含任何内容) ,那么
[A.attendance] = B{:}
会奏效。您可以将 5 -by- 5 双矩阵B
转换为所需的格式,如下所示:
B_cell = mat2cell(B, ones(size(B,1),1),size(B,2))
或跳过临时变量并使用deal
:
[A.attendance] = deal(mat2cell(B, ones(size(B,1),1),size(B,1)))