# selecting only the numbers from a string variable

396 visualizzazioni (ultimi 30 giorni)
antonet il 10 Lug 2012
Commentato: GS76 il 26 Ott 2020
Dear all,
I have
A={'BARI 500G' ...
'DUR NOR 18CONmS' ...
'SENSO NORM ST-TUB 75ML '...
'MARL 100S 20CIG'...
'BI BOY WHI RMAL DU NA 15 SK'...
'REGU KR GRA ME FAMIAL 1000 ST GRND'
};
I was wondering if there is a way to choose the numbers from A. In case i have 2 numbers in a string I want to select the second one
For instance,
B=[500 18 78 20 15 1000]
##### 5 CommentiMostra 3 commenti meno recentiNascondi 3 commenti meno recenti
antonet il 10 Lug 2012
I see. So there is not any automatic way. Ok!thanks
Luffy il 10 Lug 2012
@Antonet: Do you need those numbers as a vector??

Accedi per commentare.

### Risposta accettata

Tom il 10 Lug 2012
B = regexp(A,'\d*','Match');
returns one result for each number found in each string. You will then have to get the last value of each cell and convert it to an array (using str2double)
##### 4 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Tom il 10 Lug 2012
B = regexp(A,'\d*','Match');
for ii= 1:length(B)
if ~isempty(B{ii})
Num(ii,1)=str2double(B{ii}(end));
else
Num(ii,1)=NaN;
end
end
Num
antonet il 10 Lug 2012
Perfect!

Accedi per commentare.

### Più risposte (2)

Luffy il 10 Lug 2012
C = regexp(A,'[0-9]','match');
disp(C)
So do you need to just display those numbers/return them as a vector
##### 2 CommentiMostra NessunoNascondi Nessuno
antonet il 10 Lug 2012
Modificato: antonet il 10 Lug 2012
yes, as a vector. thanks
Tom il 10 Lug 2012
If you want a vector, what do you want for if there is no match for a particular line of the string?

Accedi per commentare.

GS76 il 26 Ott 2020
To whom it may concern:
I have the numbers below in a 1x1 string. How do I seperate them into seperate rows or columns? I want all the numbers between ";" (semi-colons).
Any assistance would be greatly appreciated.
0.0;0.005;0.01;0.015;0.02;0.025;0.03;0.035;0.04;0.045;0.05;0.055;0.06;0.065;0.07;0.075;0.08;0.085;0.09;0.095;0.1;0.105;0.11;0.115;0.12;0.125;0.13;0.135;0.14;0.145;0.15;0.155;0.16;0.165;0.17;0.175;0.18;0.185;0.19;0.195;0.2;0.205;0.21;0.215;0.22;0.225;0.23;0.235;0.24;0.245;0.25;0.255;0.26;0.265;0.27;0.275;0.28;0.285;0.29;0.295;0.3;0.305;0.31;0.315;0.32;0.325;0.33;0.335;0.34;0.345;0.35;0.355;0.36;0.365;0.37;0.375;0.38;0.385;0.39;0.395;0.4;0.405;0.41;0.415;0.42;0.425;0.43;0.435;0.44;0.445;0.45;0.455;0.46;0.465;0.47;0.475;0.48;0.485;0.49;0.495;0.5;0.505;0.51;0.515;0.52;0.525;0.53;0.535;0.54;0.545;0.55
##### 6 CommentiMostra 4 commenti meno recentiNascondi 4 commenti meno recenti
Rik il 26 Ott 2020
Adding a clarification: you don't even need to cast the string to a char, either solution can handle strings as well.
GS76 il 26 Ott 2020
Thank you Rik. This is an important point.

Accedi per commentare.

### Categorie

Scopri di più su Data Type Conversion 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