Re: [問題] 刪除矩陣中的一列已回收

看板MATLAB作者 (ForeverFun)時間16年前 (2010/02/08 13:47), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/2 (看更多)
請問大家我的矩陣 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就不會到第七排了 這樣要怎麼修改呢~~ 謝謝大家~!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.1.187

02/08 13:55, , 1F
for前面加個x=dataX; if裡面改用x判斷, dataX(a,:)=[]不變
02/08 13:55, 1F

02/08 13:57, , 2F
不對,會錯 XD 不要理我
02/08 13:57, 2F

02/08 14:08, , 3F
a = 1; while length(dataX)>=a,
02/08 14:08, 3F

02/08 14:09, , 4F
if dataX(a,:)==[0 0 0], dataX(a,:)=[];else a=a+1;end
02/08 14:09, 4F

02/08 14:09, , 5F
end
02/08 14:09, 5F

02/08 14:13, , 6F
喔耶~~謝謝大大~~學了一個while
02/08 14:13, 6F

02/08 14:40, , 7F
datax(all(datax==0,2),:)=[];
02/08 14:40, 7F
文章代碼(AID): #1BRwLKR8 (MATLAB)
文章代碼(AID): #1BRwLKR8 (MATLAB)