Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

matlab - create a matrix of sequential values

What's the fastest way to create a 8x8 matrix filled with 1-64 by row. The help docs say i should even be able to fill a matrix with an array, but i can't seem to make it work. I've been told it can be done more easily than i do it, but I've not seen it done. Here's an idea of what i'm looking for...

v26 =

 1     2     3     4     5     6     7     8
 9    10    11    12    13    14    15    16
17    18    19    20    21    22    23    24
25    26    27    28    29    30    31    32
33    34    35    36    37    38    39    40
41    42    43    44    45    46    47    48
49    50    51    52    53    54    55    56
57    58    59    60    61    62    63    64

but to get it to do this, I had to do a row-by-row fill with ...

v26 = [1:8; 9:16; 17:24; 25:32; 33:40; 41:48; 49:56; 57:64]

like image 313
Hawkins Avatar asked Dec 26 '22 19:12

Hawkins


1 Answers

make a sequence, then you reshape it:

m = reshape(1:64, [8 8])';

You have to transpose it in the end b/c matlab is column major.

like image 191
prgao Avatar answered Jan 02 '23 12:01

prgao