[問題] 提取矩陣中大於0的數值到另一個矩陣
假設我目前有一個varible x
x =
0 0 1 2
0 3 2 0
1 3 0 0
2 0 0 0
我希望將其中不等於0的部分移動到另外一varible y
變成
y =
1 3 1 2
2 3 2 0
目前我的寫法是
for k = 1:4
for a = 1:2
if x(k,1) > 0
y(a,1) = x(k,1);
end
if x(k,2) > 0
y(a,2) = x(k,2);
end
if x(k,3) > 0
y(a,3) = x(k,3);
end
if x(k,4) > 0
y(a,4) = x(k,4);
end
end
end
但結果卻是
y =
2 3 2 2
2 3 2 2
請問我是哪裡寫錯了?又該怎麼改呢?
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.183.173
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1430722675.A.5A4.html
推
05/04 15:09, , 1F
05/04 15:09, 1F
真正打算用的資料中,非0的數量是非固定的
因為是打算整理實驗得到的數據,所以每個數據的位置也不會相同
→
05/04 15:26, , 2F
05/04 15:26, 2F
看起來得到的結果,是把x的每一列中最後一個非0丟到y的對應列中
對不起,我看了一下,原來你指的是我想要的結果。
那個部分的確是我打錯了,謝謝!(已經修正了)
※ 編輯: shadow5402 (140.116.183.173), 05/04/2015 15:29:31
※ 編輯: shadow5402 (140.116.183.173), 05/04/2015 15:30:33
※ 編輯: shadow5402 (140.116.183.173), 05/04/2015 15:34:58
※ 編輯: shadow5402 (140.116.183.173), 05/04/2015 15:35:36
→
05/04 16:22, , 3F
05/04 16:22, 3F
→
05/04 16:23, , 4F
05/04 16:23, 4F
→
05/04 16:23, , 5F
05/04 16:23, 5F
→
05/04 16:24, , 6F
05/04 16:24, 6F
→
05/04 16:28, , 7F
05/04 16:28, 7F
好,十分感謝你的幫忙QQ
※ 編輯: shadow5402 (140.116.183.173), 05/04/2015 16:33:08
推
05/05 09:53, , 8F
05/05 09:53, 8F
→
05/05 11:45, , 9F
05/05 11:45, 9F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章