MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# Generate a Sequence in MATLAB

Asked by LOKESH on 31 Jan 2012

I have a 2d NxN image L. I need to convert it to a sequence of pixels L1={k1,k2,....kNxN} row wise

## Products

No products are associated with this question.

Answer by Walter Roberson on 31 Jan 2012
```L1 = reshape(L.',1,[]).'
```

Walter Roberson on 1 Feb 2012

Experiment with these steps:

L = magic(5)
t1 = L.'
t2 = t1(:)
t3 = t2.'

And see http://www.mathworks.com/help/techdoc/math/f1-85462.html#f1-85511

LOKESH on 4 Feb 2012

Thanks Sir.But with L1 = reshape(L.',1,[]),I am able to convert my 1D image to 2D.But it works only for some images,for rest it gives me errors of
"Access Out of Bounds" OR

"??? Error using ==> reshape
Product of known dimensions, 256, not divisible into total number
of elements, 21845.

Error in ==> rk4_CHEN at 198
C2 = reshape(C1.',M,[]);"

Walter Roberson on 4 Feb 2012

You are using M = 256. The only way to reshape in to a 1D row of pixels row-wise is if M = 1.

If you want to convert in to rows, then the number of rows you use, M, must be divide the number of elements in the matrix.

I notice that 21845, the number of elements in the matrix, is 257 x 85. 257 is, of course, one greater than 256. Please check your code for an off-by-one error.

Also, please be careful about whether you use M as the 2nd or 3rd parameter of the reshape(). Do you want M rows and however many columns that works out to, or do you want M columns and however many rows that works out to?

Answer by Derek O'Connor on 31 Jan 2012
```L1 = L(:)'
```