How do I make a vector into a loop?

for example I need to make the last element (N) in my vector such that (N+1) will correspond to the first element in the vector?

댓글 수: 1

Azzi Abdelmalek
Azzi Abdelmalek 2013년 2월 6일
Can you give a short example: if x=[1 2 3 4], what should be the result?

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

 채택된 답변

Dan K
Dan K 2013년 2월 6일
편집: Dan K 2013년 2월 6일

0 개 추천

I think I understand... Are you saying that if you have a five element vector A(1:5), then you want A(6) to actually reference A(1)?
One way I can see to do this is to create a custom index function as an anonymous function. This is a way of doing it for reading only.
>> A = 1:5
A =
1 2 3 4 5
>> B = @(A,ind)A(mod(ind,length(A)))
B =
@(A,ind)A(mod(ind,length(A)))
>> B(A,2)
ans =
2
>> B(A,7)
ans =
2
>> B(A,8)
ans =
3
Here's a quick way of doing it for writing:
>> A = 1:5;
>> realind = @(x)mod(x,length(A));
>> A(realind(27))
ans =
2
>> A(realind(27)) = 5
A =
1 5 3 4 5
>>

댓글 수: 2

Nice! Slight glitch, though: B(A,5) will barf. You need to tweak the mod calculation:
>> B = @(A,ind)A(1+mod(ind-1,length(A)))
Laura
Laura 2013년 2월 7일
Thanks this is what i meant and ive managed to do it now. Thanks again.

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

추가 답변 (0개)

카테고리

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

질문:

2013년 2월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by