[討論] 矩陣變向量

看板MATLAB作者 (生命的強度表現在不依賴)時間10年前 (2013/10/08 15:13), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/1
大家好 我有一個P-Value的矩陣 也就是上三角跟下三角重複,對角線為0 但我想把重複的值跟對角線拿掉 剩下的元素變成向量 拿10*10的矩陣來說,就是變成45*1的向量 我用2個for迴圈來寫: k=1 n=45 for i=1:n; for j=i+1:n; p[k]=C(ij); %C為矩陣名稱 k++; end end 但好像完全錯誤= =+ 請問該怎麼寫才對 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.126.132.96

10/08 15:21, , 1F
for loop前面先加p=zeros(1,n*(n-1)/2);
10/08 15:21, 1F

10/08 15:23, , 2F
然後裡面 p(k)=C(i,j); k=k+1;
10/08 15:23, 2F

10/08 15:43, , 3F
太感謝了!!!解決我後面160*160的噩夢~~
10/08 15:43, 3F

10/08 15:51, , 4F
p=triu(C); p=p(p~=0);
10/08 15:51, 4F

10/08 15:59, , 5F
感謝樓上,原來有這麼簡單的方法!!
10/08 15:59, 5F

10/08 16:36, , 6F
4F的方法讚!!@@
10/08 16:36, 6F

10/08 19:29, , 7F
p=C(triu(true(size(C))));
10/08 19:29, 7F
文章代碼(AID): #1IKx2ITU (MATLAB)