How to write a for loop to obtain z-scores

1 visualización (últimos 30 días)
mcm
mcm el 2 de Nov. de 2016
Comentada: Star Strider el 2 de Nov. de 2016
Although matlab has a built in z-score function, I need to create a for loop that would do the same thing. How do I improve my code
load('data1');
data1_mean = mean(data1); data1_std = std(data1);
[r,c] = size(data1);
for i = 1:r %Data1 is 50x1 so we need the loop to evaluate for all 50 rows x = (i - data1_mean ./ data1_std; end disp(x)

Respuestas (1)

Star Strider
Star Strider el 2 de Nov. de 2016
You likely can do away with the loop entirely and just use vectorised code:
data1_mean = mean(data1);
data1_std = std(data1);
x = (data1 - data1_mean)./data1_std;
  2 comentarios
mcm
mcm el 2 de Nov. de 2016
I am aware of that, but what if I want to use a for loop to achieve the same result?
Star Strider
Star Strider el 2 de Nov. de 2016
That’s straightforward:
for k1 = 1:length(data1)
x(k1) = (data1(k1) - data1_mean)./data1_std;
end
That’s how I would do it.
NOTE This is UNTESTED CODE but should work.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by