How to split binary cells and convert them to dec?

1 visualizzazione (ultimi 30 giorni)
I have a cell array consisting of binary 100x1 e.g
{'0100101000101000'}
{'0100101000101000'}
{'0100101000101000'}
...
{'0100101000101000'}
How do i take the first 3 binary from each cell and then convert it into dec?
maybe a cellfun can be helpful here but i do get some errors
I know you can use bin2dec i should expect a 2 for every cell.
Thanks!

Risposta accettata

zhehao.nkd
zhehao.nkd il 25 Gen 2022
C{1} = {'0100101000101000'};
C{2} = {'0100101000101000'};
C{3} = {'0100101000101000'};
if C is your original cell, then:
cellfun(@(x) bin2dec(x{1}(1:3)),C)
ans = 1×3
2 2 2
Is that what you need?
  1 Commento
MKM
MKM il 25 Gen 2022
Perfect, I actually managed to do this myself eventually. My version of it is:
binarystrip = cellfun(@(x) x(1:3), C, 'uniformoutput',false)
x = bin2dec(binarystrip)
Thanks for the input too.

Accedi per commentare.

Più risposte (1)

Stephen23
Stephen23 il 25 Gen 2022
More efficient than using CELLFUN:
C = {'0100101000101000';'0100101000101000';'0100101000101000';'0100101000101000'}
C = 4×1 cell array
{'0100101000101000'} {'0100101000101000'} {'0100101000101000'} {'0100101000101000'}
V = [4,2,1]*sscanf(sprintf('%s ',C{:}),'%1d%1d%1d%*d',[3,Inf])
V = 1×4
2 2 2 2

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by