Do the inverse operation of this reshape?

24 次查看(过去 30 天)
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,[]);

回答(2 个)

Roger Stafford
Roger Stafford 2018-2-13
编辑:Roger Stafford 2018-2-13
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".

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

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by