作者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
1F:推 tml:因为他经过not(也就是~)运算过後的东西是逻辑值,不是数字 12/14 02:31
2F:→ tml:资料储存的格式不同...另外你原本的题目其实可以更方便地直接 12/14 02:32
3F:→ tml:用 A(A(:,5)~=0,:) 来得到答案,不需要存新矩阵 12/14 02:33