replace all the array with NaN if any of the value is NaN

2 ビュー (過去 30 日間)
khan
khan 2017 年 9 月 27 日
コメント済み: Stephen23 2017 年 9 月 27 日
i am working with some data and the condition i want to set is that, if in the data there is NaN value in any column i want to replace that whole column with NaN values. following is a screen shot of my data structure. where i am working on the third dimension (144) of the data. Thanks in advance for help

採用された回答

KSSV
KSSV 2017 年 9 月 27 日
編集済み: KSSV 2017 年 9 月 27 日
% Generate random matrix
N = 10 ;
A = rand(10) ;
% introduce nans
idx = randsample(1:N*N,20) ;
A(idx) = NaN ;
%%Repalce columns with NaN's if any NaN'present
B = A ;
for i = 1:N
if any(isnan(A(:,i)))
B(:,i) = NaN ;
end
end

その他の回答 (1 件)

Jan
Jan 2017 年 9 月 27 日
Without a loop and bsxfun:
A = randi(9, 4, 3, 2);
A(6) = NaN;
A(:, any(isnan(A), 1)) = NaN;
  1 件のコメント
Stephen23
Stephen23 2017 年 9 月 27 日
+1 I should never answer before coffee.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!