# Do the inverse operation of this reshape?

65 views (last 30 days)
Answered: James Tursa on 13 Feb 2018
I have this code and it works but i don't know how to do the inverse operation. str is a string
cle= uint8(str);
key= reshape(cle'-'0',1,[]);

Roger Stafford on 13 Feb 2018
Edited: Roger Stafford on 13 Feb 2018
You have to know the dimensions of the original array in order to get back to that, in which case you simply do a another ‘reshape’ to get there. That is, suppose size(A) = [4,7] and you do
A = reshape(A,14,2);
You can’t tell from the size of the new A that it was once 4-by-7, but if you know that it was, then
A = reshape(A,4,7)
will get you back there.
There is an overriding order in any array that 'reshape' does not alter, which is seen if you do this: A(:) for an array A. The order in A(:) will remain the same no matter how many reshapes are done on it. This is known as the array's "linear order".
It is not a matrix but a string with variable length

James Tursa on 13 Feb 2018
Are you just trying to recover an original single line string? E.g.,
str = char(key+'0');

### Categories

Find more on Linear Algebra 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!

Translated by