作者Csy065 (小伟大人)
看板MATLAB
标题[问题] 矩阵取代问题
时间Fri Sep 11 11:31:35 2015
matlab新手发文,如有错请见谅
我有一个矩阵A=[1,2,3,4
nan,7,8,9
10,nan,11,12]
只要该行有出现nan时,该行的全部数值都取代程nan 即为矩阵B:
B=[nan,nan,3,4
nan,nan,8,9
nan,nan,11,12]
也就是第一行的(1,nan,10)有出现nan,所以1跟10则是取代为nan
而第三行(3,8,11)没有出现nan,则是保留原值。
请问该怎麽做plz~~ 卡关一天了
m(_ _)m
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.115.110.58
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1441942297.A.BB3.html
1F:推 sunev: B(:,any(isnan,1))=nan; 09/11 11:46
2F:→ celestialgod: [I,J]=ind2sub(size(A), find(isnan(A))); B=A; 09/11 11:46
3F:→ celestialgod: B(:,unique(B)) = nan; 09/11 11:47
4F:→ celestialgod: s大的比较好XDD 我想得太复杂 09/11 11:47
5F:→ Csy065: 感谢两位大大的解答,但是s大结果会跑出error using isnan 09/11 14:10
6F:→ Csy065: Not enough input arguments 09/11 14:11
7F:推 sunev: B(:,any(isnan(B,1)))=nan; % XD 09/11 14:11
执行这一行会出现出现Error using isnan Too many input arguments.
※ 编辑: Csy065 (140.115.110.58), 09/11/2015 14:27:24
8F:推 sunev: B(:,any(isnan(B),1)))=nan; 09/11 14:26
感谢s大的帮忙 B(:,any(isnan(B),1))=nan 终於解决惹~~
也感谢c大的帮忙
※ 编辑: Csy065 (140.115.110.58), 09/11/2015 14:32:59