[討論] 矩陣內元素分類已回收

看板MATLAB作者 (超越文太之人)時間14年前 (2011/08/26 10:18), 編輯推噓1(108)
留言9則, 6人參與, 最新討論串1/1
各位先進好, 我有一個資料矩陣如下: A=[x1 y1 z1;... x2 y2 z2;... . . . . . . . . . xn yn zn]; (n=任意實數,例如:100、1000...等) 想做一個資料分類的迴圈, 當xn<2300,xn yn zn的值存入L矩陣 1150<xn<2300,xn yn zn的值存入M矩陣 xn>1150,xn yn zn的值存入R矩陣 L=zeros(:;3); R=zeros(:;3); M=zeros(:;3); for i=1:n if A(i,1)<2300 L(i,1)=A(i,1); L(i,2)=A(i,2); L(i,3)=A(i,3); else if 1150<A(i,1)<2300 M(i,1)=A(i,1); M(i,2)=A(i,2); M(i,3)=A(i,3); else R(i,1)=A(i,1); R(i,2)=A(i,2); R(i,3)=A(i,3); end 目前的問題是好像輸進MATLAB後就沒反應了, 命令列的>>也沒出來打任何指令都沒反應, 想請問是迴圈有誤還是流程有誤呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.29.35.155 ※ 編輯: Heroabcyan 來自: 163.29.35.155 (08/26 10:18)

08/26 11:02, , 1F
if 的用法錯誤
08/26 11:02, 1F

08/26 11:34, , 2F
else if =/= elseif, 請使用 elseif
08/26 11:34, 2F

08/26 11:47, , 3F
那沒定義到的元素給有初始值嗎? 可以用Find吧
08/26 11:47, 3F

08/26 11:49, , 4F
L=A(A(:,1)<2300,:) 其他類似
08/26 11:49, 4F

08/26 11:52, , 5F
謝謝各位的建議,我再試看看
08/26 11:52, 5F

08/26 11:52, , 6F
1150<A(i,1)<2300改成1150<A(i,1) & A(i,1)>1150
08/26 11:52, 6F

08/26 17:05, , 7F
用find會比迴圈快很多喔 要不要考慮改改看
08/26 17:05, 7F

08/26 18:22, , 8F
謝謝樓上,用FIND迴圈後我不知道怎把他找到的結果另存
08/26 18:22, 8F

08/26 18:25, , 9F
也謝謝4樓的幫忙 我最後是採用你的建議
08/26 18:25, 9F
文章代碼(AID): #1ELm9QCN (MATLAB)