How to split this?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Younghun Kim
le 12 Juin 2020
Commenté : Younghun Kim
le 12 Juin 2020
I have M as a result of another function.
and I have to split M like C automatically...
I want to split it every 16 bits.
M => input split function => output C
M = '01100001011000100110001110000000000000000000000000000000000000000000000000000000'
????
C = {'0110000101100010'; '0110001110000000'; '0000000000000000'; '0000000000000000';'0000000000000000';}
how to make it? I'm stuck on this problem...
can you help me?
0 commentaires
Réponse acceptée
Monika Jaskolka
le 12 Juin 2020
Modifié(e) : Monika Jaskolka
le 12 Juin 2020
C = reshape(M, 16,[])'
C =
5×16 char array
'0110000101100010'
'0110001110000000'
'0000000000000000'
'0000000000000000'
'0000000000000000'
If you need it to end up as a cell array or chars, you can wrap it in cellstr:
C = cellstr(reshape(M, 16,[])')
C =
5×1 cell array
{'0110000101100010'}
{'0110001110000000'}
{'0000000000000000'}
{'0000000000000000'}
{'0000000000000000'}
Plus de réponses (3)
Image Analyst
le 12 Juin 2020
Did you try a simple for loop:
M = '01100001011000100110001110000000000000000000000000000000000000000000000000000000'
counter = 1;
for index1 = 1 : 16 : length(M)
index2 = min(length(M), index1 + 15);
c{counter} = M(index1 : index2);
counter = counter + 1;
end
celldisp(c)
2 commentaires
Image Analyst
le 12 Juin 2020
Note: This robust, general purpose loop works even if M is not a multiple of 16 characters. Otherwise (if it is known to be a multiple of 16) I'd use reshape().
David Hill
le 12 Juin 2020
You could make a matrix
newMatrix=reshape(M(1:floor(length(M)/16)*16),16,[])';
Walter Roberson
le 12 Juin 2020
temp = textscan(M,'%16s');
C = temp{1};
This handles M that are not multiples of 16 characters.
Note, though, that if M contains whitespace, that it will not split by 16 character groups, and would instead treat each "word" as the beginning of a section to be split.
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!