take out numbers from string
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jay Hanuman
il 19 Dic 2016
Commentato: Jay Hanuman
il 19 Dic 2016
I attached file which contains as this
'10.0.7.4:22->10.0.8.5:26856'
'10.0.13.4:22->10.0.12.5:9997'
'10.0.9.4:22->10.0.10.5:47576'
'10.0.14.4:443->10.0.10.5:4922'
'10.0.14.4:443->10.0.10.5:20113'
'10.0.11.4:80->10.0.13.5:61779'
'10.0.10.4:22->10.0.9.5:64788'
'10.0.9.4:80->10.0.10.5:25283'
I want to take out numbers appears after 1st and 2nd colon in two different variable. i.e. A=[22 22 443 443 80 22 80] and B=[26856 9997 47576 4922....] but A and B should be in column format. how to do it.
0 Commenti
Risposta accettata
Guillaume
il 19 Dic 2016
There's no point in creating two different variables when it's much easier to have the output as two columns of the same variable. Here's one way to do it:
suffix = regexp(VarName6, '(?<=:)\d+', 'match'); %match sequence of numbers following a :
suffix = str2double(vertcat(suffix{:})) %convert cell array of cell arrays into one big cell array and convert strings to numeric
2 Commenti
Più risposte (1)
José-Luis
il 19 Dic 2016
Modificato: José-Luis
il 19 Dic 2016
I'll get you started:
data = [{'10.0.7.4:22->10.0.8.5:26856'};{'10.0.13.4:22->10.0.12.5:9997'}];
result = cellfun(@(x) regexp(x,':[0-9]+','match'),data,'UniformOutput',false);
a = cellfun(@(x) sscanf(x{1},':%d'),result);
b = cellfun(@(x) sscanf(x{2},':%d'),result);
There are other, possibly better, ways.
Vedere anche
Categorie
Scopri di più su Characters and Strings 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!