2016-07-26 6 views
0

Ich habe eine Zelle MATLAB-Array mit folgenden Werten:Splitting Nummer aus seinen Einheiten

'1mcg/kg' 
'1mcg/kg' 
'1mcg/kg' 
'0.7mcg/kg/hr' 
'0.7mcg/kg/hr' 
'0.5mcg/kg/hr' 
'0.5mcg/kg/hr' 
'0.5mcg/kg/hr' 

, wie ich dies in Zahlen und Einheiten geteilt habe? Ich brauche die Ausgabe in zwei Zellenarrays so etwas wie:

'1' 'mcg/kg' 
'1' 'mcg/kg' 
'0.7' 'mcg/kg/hr' 
'0.5' 'mcg/kg/hr' 

Antwort

2

Sie können regexp, dies zu tun. Wir erstellen einen regulären Ausdruck, der dem numerischen Teil in einer Gruppe und dem Rest der Zeichenfolge in der anderen Gruppe entspricht.

out = regexp(data, '(\-?[0-9\.]*)(.*)', 'tokens', 'once'); 
out = cat(1, out{:}) 

% '1'  'mcg/kg' 
% '1'  'mcg/kg' 
% '1'  'mcg/kg' 
% '0.7' 'mcg/kg/hr' 
% '0.7' 'mcg/kg/hr' 
% '0.5' 'mcg/kg/hr' 
% '0.5' 'mcg/kg/hr' 
% '0.5' 'mcg/kg/hr'