![](/img/trans.png)
[英]How to delete all columns in matrix containing zeros in some rows in MATLAB
[英]Matlab: How to delete all columns in a matrix if it contains more than some specific number of NaN values
我想刪除所有具有超過一定數量NaN的列(比如5個NaN)。 有沒有辦法沒有循環呢?
無需循環:
matFixed = MAT( :, sum( isnan( MAT ) ) <= 5);
一步步:
nanMat = isnan(MAT); % convert MAT to logical with 1 indicating value is a NAN
nNanInCol = sum(nanMat); %compute the number of NANs in each col
colIdx = nNanInCol <= 5; % determine which columns are "valid"
matFixed = MAT(:, colIdx); % create new matrix using only the good columns of MAT
這很容易:
%# define a matrix with NaNs
A = rand(10); %# 10x10 array
A(A<0.5) = NaN; %# each column contains on average 5 NaNs
%# count NaNs
nanCt = sum(isnan(A),1);
%# remove columns with too many NaNs
A(:,nanCt > 5) = [];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.