2017-04-18 114 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

相關問題