How do I replace/convert all zeros in 3rd-dimension to NaN
1 view (last 30 days)
Show older comments
Hi All,
I have a 5-D matrix: 5x16x20x3x15, where 5x16 is the data set; 20 is the number of trials (per experiment); 3 is the number of experiments (per participant); and 15 is the number of participants. If I had 1 particant that had a dataset (for only one exp) that was exclusively all zeros i.e. 5x16x20x2x2 was entirely zeros; would there be a way to convert the zeros to NaN, so that my mean and std calculations are not affected?
Cheers.
0 Comments
Accepted Answer
David Hill
on 5 Sep 2020
yourMatrix(:,:,affectedTrials,affectedExperiment,affectedParticipant)=nan;
If all trials of the affected experiment are zeros, then:
yourMatrix(:,:,:,2,2)=nan;
3 Comments
David Hill
on 5 Sep 2020
If your matrix is not too large, this will work fine.
for k=1:size(yourMatrix,3)
for n=1:size(yourMatrix,4)
for m=1:size(yourMatrix,5)
if nnz(yourMatrix(:,:,k,n,m))==0
yourMatrix(:,:,k,n,m)=nan;
end
end
end
end
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!