Find text in a variable which contains texts and numbers

I read a csv file and store the data in a variable with the readtable command. This variable contains both text and numbers. How I could find the row of specific text?

 Accepted Answer

You could use ismember on the column of text, something like
loc = ismember(yourTable(:, 3), 'sometext');
if your text is in column 3. It will return the row the search text is in.

11 Comments

I tried but I got this error
Error using table/ismember (line 29)
A and B must both be tables
Right, parenthese give a column that's still a table. You need to extract the column contents using braces:
loc = ismember(yourTable{:, 3}, 'sometext');
Try that and get back to me. If that doesn't work I'll have to program up a full demo instead of tossing stuff off the top of my head. Attach your data so I can use it.
This works perfectly! Thank you very much! Should I ask something more? I noticed that the stored variable doesn't have as many rows as the csv. Csv has 30770 rows with data and the stored variable has 12637. Is there any limita boust storage capacity of a variable?
If the original question was answered, then the questioner can click the "Accept" this answer, unless you want to wait for alternative solutions.
That shouldn't be. readtable() does not limit what it pulls from a CSV file as far as I know. Anyway, your tables are tiny. Something else must be going on. Attach your CSF file, if you can. If it's too big, then just chop off everything after 13,000 lines and try to post a truncated version.
I am sorry for forgeting accept the answer. I am attaching the csv which I want to read and it is produced by an other external software
This is not a csv file as MATLAB expects it. It's line format varies quite a bit from line to line. You may have to do a line-by-line parsing of this to pull out the correct section. I just did some code for someone that did that. But it needs to be highly customized for the particular stuff in your file.
So, the reason that doesn't read all the rows is that the line format varies from line to line? What I can do?
"It needs to be highly customized for the particular stuff in your file." In other words, you need to write custom code for this unusual format.
I converted the csv file to xlsx and try to read in matlab. It reads all the rows (30770) using both xlsread command and readtable command
Kelly, does that mean that your problem is solved?

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!