How to improve a for
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Carlos
am 11 Okt. 2014
Bearbeitet: Andrei Bobrov
am 11 Okt. 2014
Hello, i want to do this operation:
f = -[Q(:,1)'*Q(:,1); Q(:,2)'*Q(:,2); Q(:,3)'*Q(:,3); Q(:,4)'*Q(:,4); Q(:,5)'*Q(:,5); Q(:,6)'*Q(:,6); Q(:,7)'*Q(:,7); Q(:,8)'*Q(:,8); Q(:,9)'*Q(:,9); Q(:,10)'*Q(:,10)];
i have thought to do this with a for
n=10;
i=1;
while i<n+1
f(i,1)=-[Q(:,i)'*Q(:,i)]; %save in columns
i=i+1;
end
but i think there must be some way to vectorize this easily. Could you help me?
Thank you.
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (2)
Jan
am 11 Okt. 2014
The vectorization is better, but here is a cleaner and more efficient loop method:
f = zeros(10, 1); % pre-allocate!!!
for k = 1:10
f(k, 1) = -(Q(:,k)' * Q(:,k));
end
2 Kommentare
Andrei Bobrov
am 11 Okt. 2014
Bearbeitet: Andrei Bobrov
am 11 Okt. 2014
f = -dot(Q,Q).'
0 Kommentare
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!