Extract the first two digits from a cell number

13 次查看(过去 30 天)
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

采纳的回答

Voss
Voss 2022-3-24
编辑:Voss 2022-3-24
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by