如何使用if循环

楼主: RevelationSD (少冰半糖)   2017-06-28 00:21:32
Matlab新手发问,如有冒犯请见谅
我有一个12*48的矩阵,有几个无意义的数字
我想要将这些数字取代成我要的数字
例如-999999要去除
-999998要以nan取代
-999997要以0取代
请问该如何以if的循环来写,卡了一个晚上还是写不出来....
作者: sppmg (sppmg)   2017-06-28 03:40:00
for I=1:12*48 ; if a(I)==-999 ;a(I)=0;end;end也可以用两层for处理。不过在MATLAB你应该用find,不然会很慢
作者: profyang (prof)   2017-06-28 06:17:00
a(a==-999997)=0之类的就好了吧 不过去除是啥意思?这样矩阵会无法维持12*48吧
楼主: RevelationSD (少冰半糖)   2017-06-28 07:26:00
的确无法维持12*48,所以我会重新排列,因为-999999在我的数据库里是无意义的数字,我要把他剔除我一开始是用A(A==-999997)=0的方式去处理,不过要处理-999999的时候,就没反应了我是令-999999=[],不知为何不能
作者: sunev (Veritas)   2017-06-28 09:39:00
A(A==-999999)=[];
作者: Acchannyan (ZeFates)   2017-06-29 19:05:00
用find找再令找到的位置变成你要的数
作者: paladin499 (芭乐丁)   2017-07-04 21:22:00
先rescale成array再去掉不要的值
作者: jsrdoz ( )   2017-07-28 13:11:00
a=a(a~=-999999);a(a==-999998)=nan;a(a==-999997)=0;

Links booklink

Contact Us: admin [ a t ] ucptt.com