Using for loops in order to find average of matrix

3 vues (au cours des 30 derniers jours)
Catayoun Lissa Eleonore Azarm
Commenté : Bob Thompson le 1 Fév 2021
Hi I have a 1000x100000 matrix.
I'd like to know the average of the numbers in each column, so that's 100000 values I'm looking for.
I can use the mean() command, and I'm trying to get this done using for loop and preallocation. What i have atm:
mu = 2;
SD = 3;
m = 1000;
n = 100000;
random_matrix = randn(m,n)*SD + mu;
a=zeros(1,n);
for k=1:m
for h=1:n
a(k,h) = means(random_matrix(k,h));
end
end
I dont know whats wrong arrgh. Can someone help me? I think i am not wrong at all, but my program does not stop running...
Thanks in advance!

Réponse acceptée

Bob Thompson
Bob Thompson le 1 Fév 2021
You can use mean to average all values in a certain direction.
mu = 2;
SD = 3;
m = 1000;
n = 100000;
random_matrix = randn(m,n)*SD + mu;
a=mean(random_matrix,1);
  5 commentaires
Catayoun Lissa Eleonore Azarm
It worked for every case exept this one:
zscored1=zeros(m,n);
tic;
for i = 1:n
zscored1(i) = (random_matrix(:,i) - means1) ./ SDs1;
end
x(3)=toc;
It says "Unable to perform assignment because the left and right sides have a different number of elements." Do you know whats wrong?
Bob Thompson
Bob Thompson le 1 Fév 2021
It means that the size of random_matrix(:,i), means1, and SDs1 don't agree. Either means1 and SDs1 need to be single elements or they need to be the same size as random_matrix(:,i).

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by