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.

답변 (2개)

Andrei Bobrov
Andrei Bobrov 2018년 3월 15일
편집: Andrei Bobrov 2018년 3월 15일

0 개 추천

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

The Canary Cry
The Canary Cry 2018년 3월 15일
Yes, I know there a functions to do it for me but I need to do it using for.

댓글을 달려면 로그인하십시오.

James Tursa
James Tursa 2018년 3월 15일
편집: James Tursa 2018년 3월 15일

0 개 추천

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

The Canary Cry
The Canary Cry 2018년 3월 15일
Oh! Yes, I see where I went wrong, thank you.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2018년 3월 15일

편집:

2018년 3월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by