How do I extract a row of data from a cell array based on a string?

5 次查看(过去 30 天)
I know there are similar questions like that and have reviewed most, but don't quite have it figured out yet. As an example I have a file containing information similar to below: 07/03/2010 07:15 AM 'Run' 'Race' 4 'Mile' 10/24/2010 12:00 PM 'Run' 'Hill' 4 'Mile' 11/14/2010 09:30 AM 'Run' 'Easy' 4 'Mile' I would like to extract all those rows that say are of type 'Hill'.
I've tried the following: hill_log = runlog1(cat(1,runlog1{:,4}) == 'Hill',:)
but get: Undefined function 'eq' for input arguments of type 'cell'. No doubt some basic nuance I'm missing.
Thanks

采纳的回答

Sean de Wolski
Sean de Wolski 2015-3-25
cat(1,runlog1{:,4})
This is a cell so you can't compare it to a string. Instead use strcmp which works on cells and strings in this manner. Something like:
strcmp(cat(1,runlog1{:,4}),'Hill')

更多回答(1 个)

Dave
Dave 2015-3-26
Still working on this a bit. I've tried the following and just get the 1st row with 'Hill'. hill_log = strcmp(runlog1{:,4}, 'Hill'); for i=1:length(hill_log); j=0; if hill_log(i)==1 j=j+1; hill_log_matrix(j,:) = runlog1(i,:) ; end end
I'm not a coder by trade, obviously, so any further hints would be appreciated.
TIA

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by