필터 지우기
필터 지우기

Flip a vector using for

조회 수: 6 (최근 30일)
The Canary Cry
The Canary Cry 2018년 3월 15일
편집: Andrei Bobrov 2018년 3월 15일
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일
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일
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.

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

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by