Is it possible to vectorize this ?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Omar Ali Muhammed
am 26 Apr. 2021
Bearbeitet: Matt J
am 26 Apr. 2021
A matrix A(100x1000) a selective column defined in B(1x1000). The required processing is the mean of non zero elements of each column of A referenced by B. Without the use of loops.
Regards
0 Kommentare
Akzeptierte Antwort
Matt J
am 26 Apr. 2021
Bearbeitet: Matt J
am 26 Apr. 2021
A(~A)=nan;
result=mean(A(:,B),1,'omitnan')
Weitere Antworten (1)
Jan
am 26 Apr. 2021
AB = A(:, B);
result = sum(AB, 1) ./ sum(AB ~= 0, 1);
mean('omitnan') replaces the NaNs by zeros for the summation and calculates the number of non-NaNs by sum(~isnan(AB)). Therefore this code should be faster, because it avoids replacing zeros by NaNs and back to zeros again.
1 Kommentar
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!