v(n:1)=1 where n>1

조회 수: 1 (최근 30일)
AnnaB
AnnaB 2014년 8월 15일
댓글: Amir 2014년 8월 15일
Hello! I have some old code from a colleague who is unavailable to answer Qs. There is a case where:
v(n:1)=1 where n>1
The fact that n>1 is the part that is confusing me. I understand that the : acts as an indices range assigning the value 1 to all values in vector v.
What am I missing? Why would 1 be at the end? Does this reverse the order of the array or continue back to the first element after reaching the end?
Thanks!
  댓글 수: 1
Image Analyst
Image Analyst 2014년 8월 15일
Please copy and paste the exact line of code. I don't understand the "where n>1" part. How are you determining that from the code? Or was it in a comment? Or do you have a for loop like "for k = 1 : n" and then the "v" line of code inside the for loop? Don't make us guess.

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

답변 (1개)

Amir
Amir 2014년 8월 15일
편집: Amir 2014년 8월 15일
Matlab doesn't reverse the order. Try this code:
A=1:10;
n=3;
A(n:1)=1
or run this:
3:1
answer is:
ans =
Empty matrix: 1-by-0
  댓글 수: 9
Julia
Julia 2014년 8월 15일
From the Matlab help:
j:k is the same as [j,j+1,j+2,...,j+m], where m = fix(k-j). In the case where both j and k are integers, this is simply [j,j+1,...,k]. This syntax returns an empty matrix when j > k
So I think your guess that nothing happens is right.
Amir
Amir 2014년 8월 15일
I will ask this from my friends. If you find the reason please share it here.

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by