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

14 views (last 30 days)
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 Comments
dpb
dpb on 20 Nov 2018
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
Md Nur Kutubul Alam
Md Nur Kutubul Alam on 21 Nov 2018
It says "Undefined function 'string' for input arguments of type 'char'."

Sign in to comment.

Answers (1)

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

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!