help with standard deviation 3d matrix

4 vues (au cours des 30 derniers jours)
itend
itend le 11 Juin 2017
Commenté : itend le 11 Juin 2017
I have a 3D matrix of size (600 x 800 x 322) unit 16.
I would like to take the standard deviation of each 600 x 800 matrix -- I am trying to get a result matrix size 1 x 1 x 322 containing the standard deviation of each matrix in this "stack".
I have tried using the std and std2 function, but haven't been able to get this to work.
Please help :)

Réponse acceptée

Walter Roberson
Walter Roberson le 11 Juin 2017
stack_std = reshape(std( reshape( double(YourMatrix), [], size(YourMatrix,3) ) ), 1, 1, []);
  1 commentaire
itend
itend le 11 Juin 2017
Brilliant, thanks!

Connectez-vous pour commenter.

Plus de réponses (1)

the cyclist
the cyclist le 11 Juin 2017
Reshape the matrix before taking the standard deviation, then reshape back:
M = rand(600,800,322);
M_r = reshape(M,480000,322);
sd_r = std(M_r);
sd = reshape(sd_r,[1 1 322]);
  1 commentaire
itend
itend le 11 Juin 2017
Awesome, thanks :)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by