How to Group strings?
    5 views (last 30 days)
  
       Show older comments
    
Hi Everyone,
How can I group strings based on their values?
Example: a=[1 2 3 4]; b=[0 5 3 5]; c=[9 4 7 7]; d=[9 7 3 1];
I want to make a group of the strings that have value of 3 in their 3rd column. Those will be a,b and d.
Can 1 string perticipate in more than one groups? For example Group 1 is the already mentioned one, and Group 2 would be made of the strings that have value of 9 in the 1st column. Those will be strings c and d.
Cheers, Vihar
1 Comment
Accepted Answer
  Jan
      
      
 on 12 Apr 2013
        Storing the data in different variables is not efficient. This would be much faster and easier to expand:
Data = [1 2 3 4; ...
        0 5 3 5; ...
        9 4 7 7; ...
        9 7 3 1];
Group{1} = find(Data(:, 3) == 3);
Group{2} = find(Data(:, 1) == 9);
And even the outputs should not be numbered, but collected in a cell array.
0 Comments
More Answers (1)
  Yao Li
      
 on 12 Apr 2013
        a(1,1:4)=[1 2 3 4]; 
a(2,1:4)=[0 5 3 5]; 
a(3,1:4)=[9 4 7 7]; 
a(4,1:4)=[9 7 3 1];
j=1;
k=1;
for i=1:4
if((find(a(i,1:4)==3)==3)+(find(a(i,1:4)==9)==1)==2)
    group_1(j,1:4)=a(i,1:4);
    j=j+1;
    group_2(k,1:4)=a(i,1:4);
    k=k+1;
else
    if(find(a(i,1:4)==3)==3)
    group_1(j,1:4)=a(i,1:4);
    j=j+1;
    elseif(find(a(i,1:4)==9)==1)
    group_2(k,1:4)=a(i,1:4);
    k=k+1;
    else
    end
end
end
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

