Using reshape function i get wrong ans....

b=[0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1];
>> SS=reshape(b,length(b)/8,8);
>> SS
SS =
0 0 0 0 0 0 0 0
1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 1
bt i want to get
SS =
0 1 0 0 0 0 1 0
0 1 0 0 0 0 1 0
0 1 0 0 0 0 1 0
0 1 0 0 0 0 1 0
ie what my array b data.. thats i want to be in SS.. how i write code? Help me

1 Commento

Where does the trailing zero column come from? It is not clear why the last and teh 2nd last column seem to have swapped.

Accedi per commentare.

 Risposta accettata

b=[0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1];
SS=reshape(b,8,[]);
SS([end,end-1],:) = SS([end-1,end],:);
SS = SS';

6 Commenti

Guillaume
Guillaume il 18 Mag 2015
Modificato: Guillaume il 18 Mag 2015
I strongly suspect that the Arjun has got his example slightly wrong and that this step:
SS([end,end-1],:) = SS([end-1,end],:);
is unwanted. I.e, the correct answer is most likely:
SS = reshape(b, 8, [])'
@Arjun, reshape rearranges the elements by column (since matlab is column major). So, the answer is to rearrange the elements in columns of 8 rows and then transpose.
ans Wrong....
i didnt get the ans... help me
As your screen shot shows, you get exactly the answer you've asked for. If this is not the answer you want, please give us a chance to help you and post exactly, what you want.
ARJUN K P
ARJUN K P il 18 Mag 2015
Modificato: ARJUN K P il 18 Mag 2015
sry its my mistake..
b=[0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1]; i want to group each 8 bits in array b.. that is i want my ans like
0 1 0 0 0 0 0 1
0 1 0 0 0 0 0 1
0 1 0 0 0 0 0 1
0 1 0 0 0 0 0 1
thanku all i got ans.... special thanks to Andrei Bobrov code is working

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Creating, Deleting, and Querying Graphics Objects in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by