2017-04-18 78 views
0

我有一个单元格C,其中大小(C)= 1x28。每个单元格包含一个10x10矩阵。我想重塑C形成一个大小为(M)= 8x8的上三角阵列M.对角线上方的每个M单元应包含原始10x10矩阵。任何建议表示赞赏。将单元格转换为上三角矩阵

+0

小区C可以通过使用下面的C =细胞(1,28)来生成; for i = 1:28 C {i} = num2cell(rand(10,10)); 结束 – Adugna

+0

以及它的解决!我首先生成了上三角矩阵的行和列索引。 [v2,v1] = find(triu(ones(8),1));然后我创建了一个空单元格M = cell(8,8);那么我填充矩阵以获得M {v2(z),v1(z)} = C {z}; end – Adugna

回答

0

如果你的结构只包含数字值可以使用cell2mat

C = num2cell(rand(8)); % generate random cell array 
M = cell2mat(C); % convert cell to matrix 
MU = triu(M,1); % get the upper triangular matrix 
+0

虽然这段代码可能会回答这个问题,但提供关于_how_和/或_why_的附加[上下文](https://meta.stackexchange.com/q/114762)可以解决问题,从而提高答案的长期价值。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请[编辑](http://stackoverflow.com/posts/43488114/edit)您的答案添加一个解释,并指出适用的限制和假设。 –

+0

感谢您的评论,增加了数值的单元格的限制 – user2999345

相关问题