Re: [問題] 刪除矩陣中的一列已回收
※ 引述《ForeverFun (ForeverFun)》之銘言:
: 請問大家我的矩陣
: dataX=[ 0 0 1
: 1 0 0
: 1 1 1
: 0 0 0 (7x3)
: 1 1 0
: 0 1 1
: 0 0 0]
: 我想要刪掉三個數字都是0的那一排
: for a=1:length(dataX(:,1));
: if dataX(a,1)==0 && dataX(a,2)==0 && dataX(a,3)==0;
: dataX(a,:)=[];
: end
: end
: 執行完跑出Index exceeds matrix dimensions
: 好像是刪完000後 length就不會到第七排了
: 這樣要怎麼修改呢~~
: 謝謝大家~!!
這邊提供你一個方法,假如你在MATLAB中要判別整列或是整行
是否為非零,可以使用函式 any
至於你上面刪存的問題,你可以換成將非零的列存在另一個變數中
在此為res
針對你的問題,程式如下
res = [] ;
for i = 1 : size( dataX , 1 )
if any( dataX( i , : ) )
res = [ res ; dataX( i , : ) ];
end
希望回答到你的問題,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.7.115
※ 編輯: artdaniel 來自: 203.73.7.115 (02/08 14:18)
推
02/08 14:19, , 1F
02/08 14:19, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):