Get number after colon
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
DGM
2021 年 7 月 29 日
編集済み: DGM
2021 年 7 月 29 日
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 件のコメント
Peter Perkins
2021 年 7 月 29 日
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.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!