Creating a 2D matrix of non-zero modes from a 3D array

2 vues (au cours des 30 derniers jours)
Daniel Reinowski
Daniel Reinowski le 26 Nov 2019
Hello,
I have a large 3D array Q (17019x68x50).
I'd like to create a new 2D matrix modeQ which is 68x50 (i.e. the latter two dimesions), with the values being the modes of each corresponding column in the array.
I'm interested only in non-zero modes, but other values are much less frequent than zero, so mode(Q,1) throws out a matrix of only zeroes.
I do not understand the nonzeros function enough to utilise it correctly either.
  1 commentaire
KALYAN ACHARJYA
KALYAN ACHARJYA le 26 Nov 2019
Yes the size of Q is 17019x68x50, what is resultant size as you expected?

Connectez-vous pour commenter.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 26 Nov 2019
Q(Q == 0) = NaN;
out = squeeze(mode(Q));
out(isnan(out)) = 0;
  1 commentaire
Daniel Reinowski
Daniel Reinowski le 26 Nov 2019
Thank you, that works exactly as desired.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by