看板 MATLAB 關於我們 聯絡資訊
請問板上的各位 如果我要製作的矩陣B,是矩陣A沿對角線切開後的左下部分 移到矩陣A其餘部分的右邊 比方說 A = [ A00 A01 A02 ... A0k A10 A11 A12 ... A1k . . . Am0 Am1 Am2 ... Amk ] B = [ A00 A01 A02 A03 ... A0k A11 A12 A13 ... A1k A10 A22 A23 ... A2k A20 A21 . . . . . . Amk Am0 Am1 ... Amk-1 ] 有什麼好方法嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.55.253
sunev:B=[zeros(size(A)) zeros(size(A))]; 12/02 16:56
sunev:n=length(A); 12/02 16:56
sunev:B(:,1:n)=triu(A);B(:,n+1:end)=tril(A); 12/02 16:57
okgogogo:維度要一樣還是增加? 增加的話就是B =[triu(A),tril(A)] 12/03 23:37
okgogogo:一樣就 for i=1:length(A) 12/03 23:37
okgogogo: A(i,:)= circshift(A(i,:),[0,1-i]); 12/03 23:37
okgogogo:end 12/03 23:38
okgogogo:應該第二種才正確... 12/03 23:40
okgogogo:第一個對角線好像多加一次...如果是第一種記得修改... 12/03 23:44
okgogogo:B=[triu(A),tril(A)-diag(diag(A))] 12/03 23:59
mp19990920:B=[triu(A), tril(A, -1)] 就可以了 12/04 15:44