- isnan - https://www.mathworks.com/help/matlab/ref/double.isnan.html
- any - https://www.mathworks.com/help/matlab/ref/any.html
how to discard NaN vectors from a 3D matrix
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi, I have a 3D matrix. some of its rows/columns/depth vectors can be all NaN. I wish to creat a new matrix which is the same as the original one only without the NaNs. is there a function that can help me do this ? in 2D i used ismember and just substitute them with []. but for the 3D case im stuck. here is an example code of such matrix
mat=ones(6,6,6);
mat(1:2,:,:)=NaN(2,6,6);
NANLoc=isnan(mat);
( so I want mat(3:6,:,:) as a new matrix)
any ideas? thanks
0 Kommentare
Antworten (1)
ag
am 27 Dez. 2024 um 9:42
Hi Itzik,
I understand that you are want to remove all slices in your 3D matrix that contain NaN values. You can achieve this by utilizing the "isnan" function in MATLAB.
Below is a code snippet that demonstrates how to accomplish this:
% Identify slices to keep (those without any NaN values)
slicesToKeep = ~any(any(isnan(M), 1), 2);
% Construct the new matrix by retaining only the non-NaN slices
newM = M(:, :, slicesToKeep);
For more details, please refer to the following MathWorks documentation:
Hope this helps!
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!