I get Error: Invalid expression. Check for missing or extra characters. when commenting out lines in a multi-line statement

It seems you can't comment-out entire lines in MATLAB within a multi-line statement. Or am I doing it wrong.
A few examples below.
1. Expressions
y = ...
1 + ...
2 + ...
3
Returns:
y =
6
y = ...
1 + ...
%2 + ...
3
Raises:
%2 + ...
Error: Invalid expression. Check for missing or extra characters.
2. Structure definitions
s = struct(...
'A',1,...
'B',2,...
'C',3....
)
Returns:
s =
struct with fields:
A: 1
B: 2
C: 3
struct(...
'A',1,...
% 'B',2,...
'C',3...
)
Raises:
% 'B',2,...
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched
delimiters.
Even if I use the Comment tool () in the MATLAB editor it causes these errors.
This is such a basic task! What am I doing wrong?

Answers (2)

You're right.

2 Comments

I wonder whether the ellipsis is even necessary within parenthesis. Python uses '\' for line continuation (ellipsis is used for other things) but it may be omitted within parenthesis:
y = (
1
+ 2
+ 3
)
Anyhow, I'm getting off topic...

Sign in to comment.

Here is one solution but it's hardly very convenient and contrary to commenting-out in other languages:
y = ...
1 + ...
...%2 + ...
3
Returns:
y =
4
s = struct(...
'A',1,...
...% 'B',2,...
'C',3....
)
Returns:
s =
struct with fields:
A: 1
C: 3

2 Comments

It is the same as
y = ...
1 + ...
... 2 + ...
3
Which does exactly as the document says that I linked in my answer.
This is the best solution I think. Don't use '%' at all, just precede any lines you want to comment out with '...'.

Sign in to comment.

Categories

Find more on Function Creation in Help Center and File Exchange

Products

Release

R2019b

Asked:

on 25 Aug 2020

Commented:

on 25 Aug 2020

Community Treasure Hunt

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

Start Hunting!