Get number after colon
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Dion Theunissen
am 28 Jul. 2021
Kommentiert: Peter Perkins
am 29 Jul. 2021
I have a text with numbers column in a table. Now i want to only select the numbers after a colon (:)
I have no idea where to start, kan anyone help me? The table looks like this:

Now i want to check column 1 and read only the numbers behind a :
So row 1 I need 34.94, skip untill row 5, get 34.94 and so on.
3 Kommentare
Akzeptierte Antwort
DGM
am 29 Jul. 2021
Bearbeitet: DGM
am 29 Jul. 2021
I don't know that I'd bother trying to directly operate on the table. Maybe there are tools that make that easier, but I never use tables. If the relevant column is extracted as a cell vector of chars or as a column vector of strings, then regexp() can be used:
extracted = {'blah blah blah (blah): 23.345 blah blah blah';
'blah blah blah (blah):23.34 blah 123 blah';
'blah blah blah'}
out = regexp(extracted,'(?<=: *)[0-9]+(\.[0-9]+)?','match');
format compact; celldisp(out) % just for web display
... at which point it can be inserted into the table or whatever else is required for further processing. If you want a numeric vector:
out = cellfun(@str2double,out,'uniform',false);
out(cellfun(@isempty,out)) = {0}; % replace empty elements with zero (or use NaN if you want)
out = vertcat(out{:})
1 Kommentar
Peter Perkins
am 29 Jul. 2021
DGM, you are correct. This is what dot subscripting on tables is for:
x = t.X;
<lengthy multiple-line computation on x to create y>
t.Y = y;
It may be that the computations are short enough that you can just do the subscripting in-line:
t.Y = <some calculation on t.X>
And of course this all assumes that y is the same length as x.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!