How do I declare a multiline array?
57 views (last 30 days)
Show older comments
Agnieszka Konstantynowicz
on 4 Jun 2018
Commented: Walter Roberson
on 30 Dec 2025 at 22:39
Hello, I have a following problem:
I have to declare an array that is very long and splits into multiple lines. How can I divide it, so that Matlab knows it's one array? Are there any separators I can use at the end of the line?
if true
y = [180 183 188 191 195 199 201 195 207 210 212 216 220 221 224
221 225 229 234 237 239 242 242 244 245 244 246 245 246 247 249
251 252 257 260 263 268 271 272 275 277 279 283 286 291 296 302
306 311 316]
end
2 Comments
Walter Roberson
15 minutes ago
Using
[a b c
d e f]
is completely equivalent to using
[a b c;
d e f]
or
[a b c; d e f]
or
[a b c; ...
d e f]
However, considering that the last of the four lines of the original question has only 3 numbers whereas the previous 3 lines have 15 numbers each, we deduce that the actual question is about creating a single row vector but splitting the row vector over several lines. Using ";" would not work for that.
y = [180 183 188 191 195 199 201 195 207 210 212 216 220 221 224;
221 225 229 234 237 239 242 242 244 245 244 246 245 246 247 249;
251 252 257 260 263 268 271 272 275 277 279 283 286 291 296 302;
306 311 316]
would be invalid, an attempt to mix a row of 3 with rows of 15.
The solution is the one proposed by @Stephen23 to put ... at the ends of lines. An alternative way to phrase his contribution would be
y = [180 183 188 191 195 199 201 195 207 210 212 216 220 221 224 ...
221 225 229 234 237 239 242 242 244 245 244 246 245 246 247 249 ...
251 252 257 260 263 268 271 272 275 277 279 283 286 291 296 302 ...
306 311 316]
Note the space after the last number before the ... operator. Several releases ago, MATLAB changed the way that the ... operator was handled; before
[a...
b]
was treated as
[ab]
but now it is treated as
[a b]
To ensure compatiability, it is best to add in the space manually,
Accepted Answer
Stephen23
on 4 Jun 2018
Edited: Stephen23
on 4 Jun 2018
y = [180,183,188,191,195,199,201,195,207,210,212,216,220,221,224,...
221,225,229,234,237,239,242,242,244,245,244,246,245,246,247,249,...
251,252,257,260,263,268,271,272,275,277,279,283,286,291,296,302,...
306,311,316]
See "ellipsis" on this page: https://www.mathworks.com/help/matlab/matlab_prog/matlab-operators-and-special-characters.html
0 Comments
More Answers (0)
See Also
Categories
Find more on NaNs in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!