matlab怎樣將有NaN的數據刪除整行?謝謝
matlab怎樣將有NaN的數據刪除整行?謝謝
@zzasunny以前版本基本上是這兩種:
a = a(all(a==a,2),:); % a = a(~any(isnan(a),2),:);
a(any(a~=a,2),:) = []; % a(any(isnan(a),2),:) = [];
2016b 可以用函數 rmmissing:
a = rmmissing(a,1)
那位叫做 MATLAB 課程設計的同學,回答別人問題之前,自己先測試一下好嗎?別誤人子弟。
% Create test matrix.
a = rand(5); a(1,2) = nan; a(3,4) = nan;
disp("Before")
disp(a)
% Remove rows with NaN.
a(any(isnan(a), 2),:) = [];
disp("After")
disp(a)
&>&> X=[nan,1,2;3,4,5;6,nan,7]
X =
NaN 1 2
3 4 5 6 NaN 7&>&> X(any(isnan(X)"),:)=[]
X =
3 4 5
我猜可以構造一個布爾向量去選擇元素
為了構造布爾向量需要求和然後用isnan
啊好吧可以用anyTEST(find(isnan(TEST)==1))=[];
我也來提供一個我常用的a為向量的話b = a(find(~isnan(a))) % 提取a中不為NaN的數
i=1;
while i &<= size(A,1)
if any(isnan(A(i,:)))
A(i,:)=[];
end
i=i+1;
end
推薦閱讀:
※推崇Mathematica的那些人,理由是什麼?
※MATLAB 的符號計算原理是什麼,為什麼不能編譯為 C?
※有關matlab循環怎麼改成矩陣運算?
※用matlab求矩陣的最大特徵值怎麼求?AHP分析法中,最大特徵值有虛部嗎?是否可以求出所有特徵值找最大的?
※matlab矩陣對角元元素修改問題?
TAG:MATLAB |