How to search and extract text segment from a character array?

I have some text in a variable namely 'hdr'. From the workplace I see the type of the variable being a character array.
From the text stored in the variable, I want to extract the value of 'testdevice.x' and 'testdevice.y'. I tried strfind() but it says "TEXT must be a string or cell array of strings."
Thanks for helping
hlp.png

2 Kommentare

Convert to either cellstr() or string() first, then regexp is vectorized to find more general patterns or use the new(ish) string...
hdr=string(hdr); % convert to string
ix=contains(hdr,"device.x")| contains(hdr,"device.y"); % find device.x|y
device=hdr(ix); % return those lines
then can parse those lines for the data
It says "Undefined function 'string' for input arguments of type 'char'."

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Andrei Bobrov
Andrei Bobrov am 21 Nov. 2018
Bearbeitet: Andrei Bobrov am 21 Nov. 2018

0 Stimmen

c = cellstr(hdr);
out = str2double(...
regexp(c,'(?<=(testdevice\.x|testdevice\.у)\s*\:\s*)\-?\d*','match','once'));
out = out(~isnan(out));

Kategorien

Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 20 Nov. 2018

Bearbeitet:

am 21 Nov. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by