MATLAB Answers

0

Find one string within another within all cell of an array

Asked by Arthur Hajaali on 11 Aug 2016
Latest activity Answered by Pham Dang on 12 Aug 2016
Hello everyone,
I have a table (800*10, this table contain various columns with specific information, in column 8 I have a series of dates each row representing a date of the format dd/mm/yyyy. These dates are not in chronological order and I wish to know of many cells belongs to the month of jan,feb,...,dec. So what I have down so far is load the full file in a table using the readtable function and then I have isolated the column 8 creating a single array (800,1). Finally, I tried to use the srtfind function as explianed in http://uk.mathworks.com/help/matlab/ref/strfind.html, but it is not working... Could anyone help me out please.
Here is the code:
formatspec = '%s%f%f%f%s%s%s%s%s%s';
file_list = readtable('file.txt','Delimiter',',','Format',formatspec);
date_column = file_list(:,3);
jan_cells_location = strfind(date_column,'01/2016');
jan_cells_number = numel(jan_cells);

  2 Comments

Your code is a little bit confused : is date_column the same variable as ships_demo_date ? If true, then, the first problem is strfind does not work on variables of class "table". Could you provide a complete minimal working example ?
You can find more information about extracting data from a table here : Access Data in a Table You will see that have used the "Parentheses" type of indexing. You should consider using the "Dot Indexing" type of indexing.
sorry made a mistake in the code the ship_demo_date should have been date_column I have modified it. And thanks for the info that the function strfind does not apply to class "table". Does that mean that I need to load the file in a array rather a table? Or is it possible for me the extract all the row from the table which contain the segment of string "01/2016". Basically I want the program to extract and tell me the number of cells which containt a day the first month of the year 2016 01/01/2016,...,31/01/2016.

Sign in to comment.

1 Answer

Answer by Pham Dang on 12 Aug 2016

Please try to replace
date_column = file_list(:,3);
by
date_column = file_list.(3);

  0 Comments

Sign in to comment.