Removing NaNs in a struct array
11 次查看(过去 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!