[討論] 如何刪除 某行有0 的那一列? 續 #12760

看板MATLAB作者 (高柏)時間11年前 (2013/12/14 00:07), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
在 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

12/14 02:31, , 1F
因為他經過not(也就是~)運算過後的東西是邏輯值,不是數字
12/14 02:31, 1F

12/14 02:32, , 2F
資料儲存的格式不同...另外你原本的題目其實可以更方便地直接
12/14 02:32, 2F

12/14 02:33, , 3F
用 A(A(:,5)~=0,:) 來得到答案,不需要存新矩陣
12/14 02:33, 3F
文章代碼(AID): #1Igp3VmU (MATLAB)
文章代碼(AID): #1Igp3VmU (MATLAB)