MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Sam
on 25 Jan 2013

I need to convert utterance strings into vectors where each dimension of the vector represents a unique word, while reading the script from an m.file. So for example if I have, out='hello' 'my' 'name' 'is' 'sam'. I want a vector with binary numbers where hello is true and everything else is false.

Solution would be output=[1,0,0,0] How can I do this? Here is what I have so far

fid=fopen('sw4325.m')

>> firstline=fgets(fid);

>> sprintf(firstline);

>> splitstring=textscan(ans, '%s');

>> out=splitstring{:};

*No products are associated with this question.*

Answer by Jan Simon
on 25 Jan 2013

Accepted answer

I do not get it. Do you want STRCMP?

str = {'hello' 'my' 'name' 'is' 'sam'}; match = strcmp('hello', str);

Show 2 older comments

Sam
on 25 Jan 2013

Thank Jan, your code does work for strings. But I have my data in a cell of strings, and it won't work for it. Here is my code f=fopen(‘hello.m’) firstline=fgets(f) sprint(firstline) splitstring=textscan(ans, ‘%s’) out=splitstring{:}

Do I need to convert this into strings first? If so, how do I do that, I'm new to Matlab, and I usually use Java so it's a little confusing

Jan Simon
on 28 Jan 2013

Sorry, I do not understand which data are strings and which are cell strings. Using `ans` directly is prone to errors. Better split the string explicitly, e.g. `out = regexp(firstline, ' ', 'split')`.
And then please explain again the type of the inputs. Either `strcmp` or `ismember` should solve the problem.

## 0 Comments