How to write a for loop to obtain z-scores
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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)
0 comentarios
Respuestas (1)
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
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.
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!