Matlab에서 대괄호가 있거나 없는 콜론 생성 배열

Matlab에서 대괄호가 있거나 없는 콜론 생성 배열

내가 알 수 있는 바에 따르면 배열 a:d:b과 은 [a:d:b]정확히 같은 것입니다. 예를 들어,

>> [1:3] == 1:3
ans =
  1×3 logical array
   1   1   1

그러나 이 두 표현식은 서로 다른 결과를 제공합니다.

>> [1:3]' + 1:3
ans =
     2     3

>> [1:3]' + [1:3]
ans =
     2     3     4
     3     4     5
     4     5     6

왜?

(저는 Matlab R2017b 9.3.0.713579를 사용하고 있습니다)

답변1

이 포럼의 Rik Wisselink로부터 좋은 답변이 나왔습니다. https://www.mathworks.com/matlabcentral/answers/391046-colon-generated-arrays-with-or-without-brackets

그 이유는 이 문이 평가되는 예상치 못한 순서 때문입니다.

[1:3]' + 1:3  
([1:3]' + 1):3  
([1;2;3]+1):3  
[2;3;4]:3  
2:3  
[2,3]  

대괄호를 추가하면 콜론 연산자 앞과 뒤에 그룹화가 강제됩니다(괄호도 작동했을 것입니다).

Stephen Cobeldick은 이것이 +.:

Steven Lord는 또한 문서에 4행에서 5행으로의 전환이 설명되어 있다고 언급했습니다.

비스칼라 배열을 지정하면 MATLAB은 j:i:k를 j(1):i(1):k(1)로 해석합니다.

관련 정보