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

看板MATLAB作者 (陸)時間16年前 (2010/02/08 14:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1BRwo828 (MATLAB)
文章代碼(AID): #1BRwo828 (MATLAB)