How do I declare a multiline array?
46 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Agnieszka Konstantynowicz
le 4 Juin 2018
Commenté : Walter Roberson
le 30 Déc 2025 à 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 commentaires
Walter Roberson
le 30 Déc 2025 à 22:39
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,
Réponse acceptée
Stephen23
le 4 Juin 2018
Modifié(e) : Stephen23
le 4 Juin 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur NaNs dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!