Filter löschen
Filter löschen

Flip a vector using for

6 Ansichten (letzte 30 Tage)
The Canary Cry
The Canary Cry am 15 Mär. 2018
Bearbeitet: Andrei Bobrov am 15 Mär. 2018
I'm a MATLAB beginner in need of some help. I need to flip a vector so that it goes in reverse. Basically, [1 2 3] becomes [3 2 1]; Here's what I've got:
vector=[1:12]
A=0;
j=12;
for i=1:12
A=vector(i);
vector(i)=vector(j);
vector(j)=A;
j=j-1;
end
vector
I'm not really sure why it's not working since this seems like the logical way to do it.

Antworten (2)

Andrei Bobrov
Andrei Bobrov am 15 Mär. 2018
Bearbeitet: Andrei Bobrov am 15 Mär. 2018
out = flip(yourvector);
with loop (no use)
out = zeros(size(yourvector));
k = 1;
for ii = numel(yourvector):-1:1
out(k) = yourvector(ii);
k = k + 1;
end
  1 Kommentar
The Canary Cry
The Canary Cry am 15 Mär. 2018
Yes, I know there a functions to do it for me but I need to do it using for.

Melden Sie sich an, um zu kommentieren.


James Tursa
James Tursa am 15 Mär. 2018
Bearbeitet: James Tursa am 15 Mär. 2018
Because you are exchanging elements, you wind up flipping the vector twice, which gets it back to the original state. Instead, just run your for-loop through 1/2 of the vector so that the elements are only flipped once. E.g.,
for i=1:floor(numel(vector)/2)
  1 Kommentar
The Canary Cry
The Canary Cry am 15 Mär. 2018
Oh! Yes, I see where I went wrong, thank you.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing 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!

Translated by