How to separate the elements if any two elements of a row in a matrix is same in other rows of the matrix?
1 view (last 30 days)
Show older comments
obaid-ur-rehman
on 19 Jan 2018
Commented: obaid-ur-rehman
on 20 Jan 2018
A=[1 2 5;
2 3 5;
3 4 5;
1 5 6;
1 2 3]
Suppose I have the above A matrix. Now I will compare the elements of row one with all other rows of the matrix and if any two elements of other rows become same with the first row then i want to separate them. Similarly, I need to check for rest of the rows.
Like, here 2 5 of first row is also in 2nd row, 1 5 is in 4th row and 1 2 is in fifth row. SO i will store them in a matrix B=[2 5;1 5;1 2]. Similarly foe 2nd row, 3 5 is in third row,2 3 is in 5th row; so B matrix will be updated as B=[2 5;1 5;1 2;3 5;2 3]
Accepted Answer
Birdman
on 19 Jan 2018
Edited: Birdman
on 19 Jan 2018
You may also use intersect and setdiff. For instance, here is an approach for the situation:
for i=1:size(A,1)
temp=setdiff(1:size(A,1),i);
for j=1:numel(temp)
B{i,j}=intersect(A(i,:),A(temp(j),:));
end
end
This compares the ith row of A matrix with the remaining ones and stores the different values in a cell array.
More Answers (0)
See Also
Categories
Find more on Resizing and Reshaping Matrices 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!