看板 MATLAB 關於我們 聯絡資訊
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://www.ptt.cc/bbs/MATLAB/M.1441942297.A.BB3.html
sunev: B(:,any(isnan,1))=nan; 09/11 11:46
celestialgod: [I,J]=ind2sub(size(A), find(isnan(A))); B=A; 09/11 11:46
celestialgod: B(:,unique(B)) = nan; 09/11 11:47
celestialgod: s大的比較好XDD 我想得太複雜 09/11 11:47
Csy065: 感謝兩位大大的解答,但是s大結果會跑出error using isnan 09/11 14:10
Csy065: Not enough input arguments 09/11 14:11
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
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