how can I insert comments into a multiline array creation?

16 views (last 30 days)
This works
>> p = [...
%%%BEGIN ENTRIES %%%
'a1;', ...
'b;', ...
'c;'
]
p =
a1;b;c;
but commenting out the 'b' line doesn't
p = [...
%%%BEGIN ENTRIES %%%
'a1;', ...
% 'b;', ...
'c;'
]
Dimensions of matrices being concatenated are not consistent.

Accepted Answer

Walter Roberson
Walter Roberson on 27 Dec 2017
p = [...
%%%BEGIN ENTRIES %%%
'a1;', ...
... % 'b;', ...
'c;'
]
Note: ... itself acts as a comment operator for the rest of the line, so you could get away with
p = [...
%%%BEGIN ENTRIES %%%
'a1;', ...
... 'b;', ...
'c;'
]
However this would tend to confuse people as it is not common to use this and readers might not pick up on the fact the rest of the line was a comment.
  2 Comments
Walter Roberson
Walter Roberson on 27 Dec 2017
... has the side effect of also ignoring the rest of the line, but it has the primary effect of continuing the previous statement.
The portion of the 'b;' line before the % is not commented out, so
p = ['a1;', ...
% 'b;', ...
'c;']
is the same as
p = ['a1;', ...
'c;']
which is not the same as
p = ['a1;', ...
'c;']
The
p = ['a1;', ...
'c;']
version should be looked at as if it were
p = ['a1;', ...
[]
'c;']
which would be the same as
p = ['a1;', []
'c;']
The default within [] is that lines that do not end in continuation are treated as if they had ; at the end of them, so this is
p = ['a1;', [];
'c;']
which is
p = ['a1;';
'c;']
and that fails because the number of columns is not equal.

Sign in to comment.

More Answers (1)

Andrew Diamond
Andrew Diamond on 27 Dec 2017
I've been doing matlab for about 30 years and I didn't know this (the implicit empty array row insertion as well as the continuing ellipses at the start of a line as a continuation of the previous line etc). You learn something new every day.
again, thanks so much.

Tags

Products

Community Treasure Hunt

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

Start Hunting!