how to split character data in string and double?

Hello,
I'm having difficulties separating character arrays. I want to split the char strings below and retrieve the numeric values.
'Time 12:57:33'
'Temp. T2 [deg.C] = 36.6'
'Solar Irradiance [kW/m^2] 0.857101'
Can anybody help me? Im new to Matlab and I know this should be an easy task, but im having quite some trouble with it.
Thanks in advance, greetings Boudewijn

 Accepted Answer

c = {'Time 12:57:33'
'Temp. T2 [deg.C] = 36.6'
'Solar Irradiance [kW/m^2] 0.857101'}
regexp(c,'(\d*:)*\d*(\.\d*)*$','match')

4 Comments

Thank you!
This is exactly what I want my output to look like! However I want to generate columns of time values, columns of temp values, etc.
I actually have a structure with a column of time values, a column of irradiance values etc.
How can I adjust the code to retrieve it seperately?
'Time 12:57:33'
'Time 12:57:51'
'Time 12:58:37'
And to refer to the first time value I type in
'solar.time(1,1)'
Thanks in advance!
You didn't explain how your data are stored, post a sample of your data for at least two time values
Sorry,
The data is stored in a structure consisting of a several 69x1 cell arrays.
To refer to the second time value I type in;
solar.time(2,1)
I figured it out! Thanks again!

Sign in to comment.

More Answers (1)

str='Time 12:57:33'
out=regexp(str,'\d+(\.)?(\d+)?','match')

1 Comment

If your data are stored like:
v={'Time 12:57:33','Temp. T2 [deg.C] = 36.6','Solar Irradiance [kW/m^2] 0.857101';'Time 12:57:33' ,'Temp. T2 [deg.C] = 36.6','Solar Irradiance [kW/m^2] 0.857101'}
out=regexp(v,'[\d:]+(\.)?(\d+)?$','match')
out=[ [out{:,1}]' [out{:,2}]' [out{:,3}]']

Sign in to comment.

Categories

Asked:

Bou
on 28 Feb 2014

Commented:

Bou
on 28 Feb 2014

Community Treasure Hunt

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

Start Hunting!