作者goldberg73 (高柏)
看板MATLAB
標題[討論] 如何刪除 某行有0 的那一列? 續 #12760
時間Sat Dec 14 00:07:56 2013
在 12760篇曾經問過這個問題~
ejialan 大大 也精闢解說過, 但小弟不才
還是沒有全懂
經過我一步一步 拆解 仍然有盲點. 因此希望高手能指點 一下
原矩陣
12 20 0 0 0
12 25 1 2 0
15 25 1 0 0
15 20 1 2 3
10 0 0 0 0
12 14 1 5 6
想要的結果為, 如果第5行出現0, 就刪除此列
預想結果為:
15 20 1 2 3
12 14 1 5 6
ejialan 大大 提供的方法為A(~(A(:,5)),:)=[]
但我一步 一步 試, 卻出現疑問
Step1 : ~(A:5) => 1
1
1
0
1
0
就是這邊不太懂 , 為何 A(~A(:5)) 會等於 以下所顯現的數值?
我實際 設x=[1 1 1 0 1 0]' 帶入A(x) 也不會跑出以下數值…
A(~(A(:,5))=
12
12
15
10
A(~(A(:,5)),:)= 12 20 0 0 0
12 25 1 2 0
15 25 1 0 0
10 0 0 0 0
有請高手 指導 謝謝~!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.111.143
推 tml:因為他經過not(也就是~)運算過後的東西是邏輯值,不是數字 12/14 02:31
→ tml:資料儲存的格式不同...另外你原本的題目其實可以更方便地直接 12/14 02:32
→ tml:用 A(A(:,5)~=0,:) 來得到答案,不需要存新矩陣 12/14 02:33