7
假設我有一個m x n
矩陣A.
有沒有辦法創建B
,(n x m) x n
矩陣,其「對角線」由A
的列組成?來自列的塊對角矩陣
實施例:
A = [1 2;
3 4]
B = [1 0;
3 0;
0 2;
0 4]
假設我有一個m x n
矩陣A.
有沒有辦法創建B
,(n x m) x n
矩陣,其「對角線」由A
的列組成?來自列的塊對角矩陣
實施例:
A = [1 2;
3 4]
B = [1 0;
3 0;
0 2;
0 4]
下面是一個方法:
A
到其列的cell array,使用mat2cell
;blkdiag
的輸入。代碼:
A = [1 2; 3 4]; %// example data
C = mat2cell(A, size(A,1), ones(1,size(A,2))); %// step 1
B = blkdiag(C{:}); %// step 2
這將產生
B =
1 0
3 0
0 2
0 4
這裏是一個簡短的腳本來做到這一點。它適用於任何尺寸的A。
A=[1 2; 3 4];
[R C] = size(A);
for i=1:C
B(1+R*(i-1) : R*i , i) = A(:,i);
end
您的示例不匹配,最終以2m x n – Daniel
說得對!修復!謝謝 –