Replacing for loops with matrix math.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Douglas Brenner
am 12 Okt. 2018
Bearbeitet: Matt J
am 12 Okt. 2018
How can I simplify this code. I.e remove the loops and replace them with matrix math.
for i=1:3
for j = i:num_pts - i
diag(i,j) = testm1(j,2) * testm2(j+i,2);
end
end
Akzeptierte Antwort
Matt J
am 12 Okt. 2018
Bearbeitet: Matt J
am 12 Okt. 2018
I wouldn't say that replacing the loops with matrix operations is a way to "simplify" it, but here's how you could do it.
[m,n]=size(diag);
[I,J]=ndgrid(1:m,1:n);
keep= J>=I & J<=num_pts-I;
I=I(keep); J=J(keep);
diag(keep) = testm1(J,2) .* testm2(J+I,2);
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!