如何使用if迴圈

看板MATLAB作者 (少冰半糖)時間7年前 (2017/06/28 00:21), 編輯推噓5(509)
留言14則, 7人參與, 最新討論串1/2 (看更多)
Matlab新手發問,如有冒犯請見諒 我有一個12*48的矩陣,有幾個無意義的數字 我想要將這些數字取代成我要的數字 例如-999999要去除 -999998要以nan取代 -999997要以0取代 請問該如何以if的迴圈來寫,卡了一個晚上還是寫不出來.... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.128.213 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1498580495.A.9D9.html

06/28 03:40, , 1F
for I=1:12*48 ; if a(I)==-999 ;a(I)=0;end;end
06/28 03:40, 1F

06/28 03:41, , 2F
也可以用兩層for處理。不過在MATLAB你應該用find,不然會很
06/28 03:41, 2F

06/28 03:41, , 3F
06/28 03:41, 3F

06/28 06:17, , 4F
a(a==-999997)=0之類的就好了吧 不過去除是啥意思?這樣
06/28 06:17, 4F

06/28 06:17, , 5F
矩陣會無法維持12*48吧
06/28 06:17, 5F

06/28 07:26, , 6F
的確無法維持12*48,所以我會重新排列,因為-999999
06/28 07:26, 6F

06/28 07:26, , 7F
在我的資料庫裡是無意義的數字,我要把他剔除
06/28 07:26, 7F

06/28 07:29, , 8F
我一開始是用A(A==-999997)=0的方式去處理,不過要
06/28 07:29, 8F

06/28 07:29, , 9F
處理-999999的時候,就沒反應了
06/28 07:29, 9F

06/28 07:30, , 10F
我是令-999999=[],不知為何不能
06/28 07:30, 10F

06/28 09:39, , 11F
A(A==-999999)=[];
06/28 09:39, 11F

06/29 19:05, , 12F
用find找再令找到的位置變成你要的數
06/29 19:05, 12F

07/04 21:22, , 13F
先rescale成array再去掉不要的值
07/04 21:22, 13F

07/28 13:11, , 14F
a=a(a~=-999999);a(a==-999998)=nan;a(a==-999997)=0;
07/28 13:11, 14F
文章代碼(AID): #1PKeOFdP (MATLAB)
文章代碼(AID): #1PKeOFdP (MATLAB)