내가 알 수 있는 바에 따르면 배열 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)로 해석합니다.