What is the answer of [(4 -2 ) /2 , 5 +6 , 7 , 8 ] ? Why does MATLAB output [1 5 6 7 8]?

57 views (last 30 days)
When the plus sign is preceded by a blank space:
[(4 -2 ) /2 , 5 +6 , 7 , 8 ]
ans = 1×5
1 5 6 7 8
Delete blank space:
[(4 -2 ) /2 , 5+6 , 7 , 8 ]
ans = 1×4
1 11 7 8
I don't understand why MATLAB will output different results.
Under normal circumstances, shouldn't spaces be ignored?

Accepted Answer

VBBV
VBBV on 24 Feb 2023
[5 +6]
Is not equivalent to
5+6
When you use concatenate operator [ ]

More Answers (3)

qqffssxx
qqffssxx on 24 Feb 2023
I got it!
[1 +3 +5 ] == [1 3 5]

Askic V
Askic V on 24 Feb 2023
Edited: Askic V on 24 Feb 2023
In Matalb, when you define an array (or vector) you can use the following syntax:
v = [1 3 4 5 6]
v = 1×5
1 3 4 5 6
This is exactly the same as:
v = [1, 3, 4, 5, 6]

Steven Lord
Steven Lord on 24 Feb 2023
See this documentation page for more information.
  1 Comment
Stephen23
Stephen23 on 24 Feb 2023
Edited: Stephen23 on 24 Feb 2023
There is nothing on that page that explicitly explains how space is interpreted around arithmetic operators when building arrays:
[1 - 2]
ans = -1
[1 -2]
ans = 1×2
1 -2
This topic comes up fairly regularly on Answers, indicative of confusion regarding this topic, and that page looks like a good place to document it. None of the other "obvious" pages I found in a quick search now covered this topic either, e.g.:

Sign in to comment.

Categories

Find more on Entering Commands in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!