Different result when adding variables
1 view (last 30 days)
Show older comments
This is in MATLAB R2016a. The addition
1:3 + [0 0 5]
gives
1 2 3
if we assign
x = 1:3;
and
y = [0 0 5];
then x+y is
1 2 8
0 Comments
Accepted Answer
Stephen23
on 19 May 2016
Edited: Stephen23
on 19 May 2016
You are doing two different operation sequences, so why the surprise that you get two different results?
First Case
>> 1:3 + [0 0 5]
ans =
1 2 3
>> 1: (3 + [0 0 5])
ans =
1 2 3
which is equivalent to
>> 1:[3,3,8]
ans =
1 2 3
and thus is just
>> 1:3
ans =
1 2 3
because the colon operator only uses the first element of the vector and ignore the rest: "If you specify nonscalar arrays, MATLAB interprets j:i:k as j(1):i(1):k(1)."
Second Case
>> x = 1:3;
>> y = [0 0 5];
>> x+y
ans =
1 2 8
Summary
Beginners often forget about operator precedence and to read the documentation...
2 Comments
Steven Lord
on 19 May 2016
To elaborate slightly on Stephen's answer, the plus operator is at precedence level 6 while the colon operator is at level 7.
More Answers (0)
See Also
Categories
Find more on Whos in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!