標籤:

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

啊好吧可以用any


TEST(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 |