[問題] 矩陣取代問題

看板MATLAB作者 (小偉大人)時間9年前 (2015/09/11 11:31), 9年前編輯推噓3(305)
留言8則, 3人參與, 最新討論串2/2 (看更多)
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

09/11 11:46, , 1F
B(:,any(isnan,1))=nan;
09/11 11:46, 1F

09/11 11:46, , 2F
[I,J]=ind2sub(size(A), find(isnan(A))); B=A;
09/11 11:46, 2F

09/11 11:47, , 3F
B(:,unique(B)) = nan;
09/11 11:47, 3F

09/11 11:47, , 4F
s大的比較好XDD 我想得太複雜
09/11 11:47, 4F

09/11 14:10, , 5F
感謝兩位大大的解答,但是s大結果會跑出error using isnan
09/11 14:10, 5F

09/11 14:11, , 6F
Not enough input arguments
09/11 14:11, 6F

09/11 14:11, , 7F
B(:,any(isnan(B,1)))=nan; % XD
09/11 14:11, 7F
執行這一行會出現出現Error using isnan Too many input arguments. ※ 編輯: Csy065 (140.115.110.58), 09/11/2015 14:27:24

09/11 14:26, , 8F
B(:,any(isnan(B),1)))=nan;
09/11 14:26, 8F
感謝s大的幫忙 B(:,any(isnan(B),1))=nan 終於解決惹~~ 也感謝c大的幫忙 ※ 編輯: Csy065 (140.115.110.58), 09/11/2015 14:32:59
文章代碼(AID): #1LyaiPkp (MATLAB)
文章代碼(AID): #1LyaiPkp (MATLAB)