how can I cancel repeated results?
    6 views (last 30 days)
  
       Show older comments
    
Hi
how can I cancel repeated results??? here a function result st
s =
    -2     2    -1
s =
    -2    -2     1
s =
    -2     2    -1
s =
     0     0     3
s =
     0     0    -3
s =
     0     0     3
s =
     0     0    -3
here s in the for loop
and unique(s,'rows') doesn't work
I know, because of the 'rows', not change anything here but I want to save same variables in the row...
4 Comments
  Azzi Abdelmalek
      
      
 on 19 May 2013
				What do you mean by cancel repeated result. s is a 1x3 array, each step the old s is erased by the new s. post your for loop and explain what is the expected result
Accepted Answer
  Andrei Bobrov
      
      
 on 19 May 2013
        s = bsxfun(@times,M,vector);
sout = unique(s,'rows','stable');
0 Comments
More Answers (2)
  Azzi Abdelmalek
      
      
 on 19 May 2013
        
      Edited: Azzi Abdelmalek
      
      
 on 19 May 2013
  
      If
s ={{-2 2 -1},{-2 -2 1},{-2 2 -1},{0 0 3},{0 0 -3},{0 0 3},{0 0 -3}}
Then
out=unique(cell2mat(cellfun(@cell2mat,s','un',0)),'rows')
Or if
s ={-2 2 -1;-2 -2 1,;-2 2 -1;0 0 3;0 0 -3;0 0 3;0 0 -3}
Then
out=unique(cell2mat(s),'rows')
0 Comments
  Azzi Abdelmalek
      
      
 on 19 May 2013
        M = [1 1 1; 1 1 -1; 1 -1 1; 1 -1 -1; -1 1 1; -1 1 -1; -1 -1 1; -1 -1 -1];
rowM=zeros(1,3);
vector=[1 0 1]
for p=1:size(M,1)
    rowM(:)=M(p,:);
    s{p,1}=(rowM.*vector)
end
out=unique(cell2mat(s),'rows')
0 Comments
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

