Removing NaNs in a struct array
8 ビュー (過去 30 日間)
古いコメントを表示
I have a struct array that is 15X1000X1000. There are random NaN's scattered throughout the data in this struct and I would like to replace these with random values between 1 and 10. I have tried writng an if statement to do it but the if cannot handle the NaN. How should i approach this.
3 件のコメント
回答 (1 件)
Stephan
2019 年 1 月 15 日
編集済み: Stephan
2019 年 1 月 15 日
Hi,
for a matrix A in R2018b use:
A(isnan(A)) = randi(10,1,sum(isnan(A),'all'))
Best regards
Stephan
1 件のコメント
Guillaume
2019 年 1 月 15 日
Instead of sum(isnan(A), 'all') you could use nnz(isnan(A)) which is shorter and works in any version of matlab. It's possibly faster as well.
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!