I have some values as : A=
0
0
1
0
1
0
1
0
0
1
1
0
I want to take every 4 values in a string.
Output should be : B =
0 0 1 0
1 0 1 0
0 1 1 0
And, after that I want to covert the values from binary to decimal.
Final output should be :
2
10
6
It cuould be better for me if it is done in a loop. Because, I have a length of "A" near 40+ lacs.

 Akzeptierte Antwort

KALYAN ACHARJYA
KALYAN ACHARJYA am 4 Jan. 2021
Bearbeitet: KALYAN ACHARJYA am 4 Jan. 2021

1 Stimme

B=reshape(A,[4,3])';
C=num2str(B);
bin2dec(C)
Output :
ans =
2
10
6
Note: Loop is not necessity .

4 Kommentare

Noman Abir
Noman Abir am 4 Jan. 2021
You used B=reshape(A,[4,3])'; where 3 is for length.
What can I use if the length is unidentified.? (Length can be anything anytime)
Should I then use this code..?
K = length(A);
B=reshape(A,[4,K])';
Stephen23
Stephen23 am 4 Jan. 2021
Bearbeitet: Stephen23 am 4 Jan. 2021
"Should I then use this code..? K = length(A); B=reshape(A,[4,K])';"
No, because the reshaped vector would have to have K/4 columns, not K columns.
But in any case, experienced MATLAB users would recommend this syntax:
B = reshape(A,4,[]).';
and simply letting reshape calculate how many columns are required.
KALYAN ACHARJYA
KALYAN ACHARJYA am 4 Jan. 2021
Thanks @Stephen
Noman Abir
Noman Abir am 4 Jan. 2021
Thank You both @KALYAN & @Stephen.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by