作者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/m.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