Adding array create via colon operator.
4 次查看(过去 30 天)
显示 更早的评论
In cleaning up some code, the editor identified some supposedly unnecessary brackets that turned out to be completely necessary (at least parentheses). However, removing them gave some unexpected results. I was wonder if anyone had an explanation for the following example or is it a bug? FYI, I am using Matlab 2011a.
>> x = [1 2 3 4];
>> y = x + [1:4] %with brackets
y =
2 4 6 8
>> y = x + 1:4 %w/o brackets or parentheses
y =
2 3 4
Granted parentheses also work correctly in the first equation ... However, why is the 2nd output only 3 elements? What is Matlab actually doing in that example?
Thanks,
0 个评论
采纳的回答
Sean de Wolski
2014-3-31
编辑:Sean de Wolski
2014-3-31
It's grouping it like this:
(x+1):2
Best practice is to always use parenthesis! So for your example
x + (1:4)
The []s are unnecessary here because they are horizontally concatenating the vector that is already a row vector (the same as [1 2 pi]). Parenthesis don't specify concatenation but do specify order of operations.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!