[問題] 矩陣資料載入已回收

看板MATLAB作者 (風~~)時間13年前 (2011/08/09 12:33), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
又很不好意思上來麻煩各位版大 但最近老闆催得很兇 還請各位版大能幫忙 謝謝 我想要載入一筆矩陣資料到另一個矩陣去 但中間需經過篩選 例如 a= 1 2 3 4 1 5 6 7 8 0 9 10 11 12 0 13 14 15 16 1 17 18 19 20 0 篩選條件為當第5行不為0時 記錄該行及下一行之第1列 我想將它錄成 b=1 13 5 17 目前寫法為 p=find(a(:,5)~=0) for k=1:10 (已經知道會有10筆) b(:,k)=a(p(k):p(k)+1,1) end 跑的結果每次b都只有成功記錄第1行 b=1 5 但接下來即出現 ??? Subscripted assignment dimension mismatch. 這個訊息 第2筆資料就沒辦法進入b了 不曉得是出現什麼問題呢 還請告位版大能幫忙 謝謝唷!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.88.28

08/09 13:22, , 1F
p(k):p(k+1) => p(k):p(k)+1
08/09 13:22, 1F

08/09 13:26, , 2F
謝謝樓上~~不過這是筆誤...因為還是沒解決原來問題.謝謝
08/09 13:26, 2F
※ 編輯: venusting 來自: 140.113.88.28 (08/09 13:27)

08/09 16:04, , 3F
如果你確定紀錄的資料只有第一個column而已的話
08/09 16:04, 3F

08/09 16:04, , 4F
index = find( a( : , 5 ) ) ;
08/09 16:04, 4F

08/09 16:05, , 5F
b = a( [ index , index+1 ] ' )
08/09 16:05, 5F

08/09 16:05, , 6F
這樣寫就可以了
08/09 16:05, 6F
文章代碼(AID): #1EGBYifS (MATLAB)