Azzera filtri
Azzera filtri

Extract the first two digits from a cell number

13 visualizzazioni (ultimi 30 giorni)
Hello!
I have a cell array, and i need to extract the first two digits.
946210.887239541 5834.79659950033 2331.48462622471 1082.03333024461 555.948997161636 386.857494592061
163514355.623239 86011.7585899832 33427.7515152879 15281.0376072647 7801.56366753683 4742.13225247842
example:
94 58 23 ..
16 86 33 ..
i try this, cellfun(@(v)v(2),""+vnc)-'0'; but it return the 2 digit..
Any ideia?
thanks

Risposta accettata

Voss
Voss il 24 Mar 2022
Modificato: Voss il 24 Mar 2022
vnc = { ...
946210.887239541 5834.79659950033 2331.48462622471 1082.03333024461 555.948997161636 386.857494592061
163514355.623239 86011.7585899832 33427.7515152879 15281.0376072647 7801.56366753683 4742.13225247842 };
% maybe this is what you had in mind:
cellfun(@(v)v(1:2)-'0',""+vnc,'UniformOutput',false)
ans = 2×6 cell array
{[9 4]} {[5 8]} {[2 3]} {[1 0]} {[5 5]} {[3 8]} {[1 6]} {[8 6]} {[3 3]} {[1 5]} {[7 8]} {[4 7]}
% or maybe this:
cellfun(@(v)v(1:2),""+vnc,'UniformOutput',false)
ans = 2×6 cell array
{'94'} {'58'} {'23'} {'10'} {'55'} {'38'} {'16'} {'86'} {'33'} {'15'} {'78'} {'47'}
% alternatively, returning a matrix of 2-digit numbers:
vnc_mat = cell2mat(vnc);
floor(vnc_mat.*10.^(1-floor(log10(vnc_mat))))
ans = 2×6
94 58 23 10 55 38 16 86 33 15 78 47

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by