How to count repeated rows of characters using a loop?

2 views (last 30 days)
Say I have an array (I have already sorted alphabetically): results=[ABC;ABC;DEF;GHI;GHI;....]. I must use either a 'for' or 'while' loop (and I believe an 'if' statement will also make this easier) to find out how many times any repeated rows appear. i.e my above results would end up as [2;1;2;...]
thank you
Jason on 23 Mar 2014
I am GIVEN a CHAR matrix, all values already entered. To date all I have done is use "sortrows" to put the matrix in alphabetic order. My issue is coming to the loop, I have:
for 1:1:length(results)
if results(i,:)==results(i+1,:)
count= i+1
then matlab tells me "Index exceeds matrix dimensions"

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 23 Mar 2014
Hint: have you looked into sortrows() and unique()? If I were to do it for you, that's what I'd be looking up. Or maybe use hist(). Have you tried anything yet? Is this homework?
Image Analyst
Image Analyst on 23 Mar 2014
Jason, you should have tagged it as homework. Please do so now. OK, so you have a loop over rows - that should be obvious, right. Now what? How about having another loop inside over rows from 1 to the current row where you check the current row against all 3 column elements of all prior rows ? That seems to make sense. Now if a match is found, you'll need to increment something, and if no match is found, it's the first one found so far so you need to set the count array to 1 for that pattern. Just think it through and you'll get it. Come back with more code if you have trouble. We can't just hand over to you a turnkey solution.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!