Info

This question is closed. Reopen it to edit or answer.

Someone can help with the matrix manipulation?

2 views (last 30 days)
Rodrigo Franco
Rodrigo Franco on 1 Jun 2020
Closed: MATLAB Answer Bot on 20 Aug 2021
Hello everyone,
I have two matrix A and B and i wanna find the row equals in both matrix and remove the line on matrix B. I wanna safe on the vector the position the lines,How can i do it?
For example:
A = [1 2 6 3;
4 5 6 9;
7 7 7 6;
9 8 7 3];
B = [0 9 6 3;
3 5 1 9;
7 7 7 6;
9 8 9 9];
the row equals is row 3. So i wanna find the rows equal, that's row 3 and leave the matrix B this way:
B = [0 9 6 3;
3 5 1 9;
9 8 9 9];
vector = 3;
I tryed this way:
ix = all(A == B, 2);
B = B(~ix, :)
vector = find(ix)
but i can't use the function all, i can use only the functions: "find", "unique" and "isempty". I can use the function "for" and "size" too.
Ps.: If i put the two matrix with diffent dimensions, my code not working. Appear this error:
"Error using ==
Matrix dimensions must agree."
Help me
  2 Comments
madhan ravi
madhan ravi on 1 Jun 2020
Edited: madhan ravi on 1 Jun 2020
Does it mean it's your exam/homework?
"Ps.: If i put the two matrix with diffent dimensions, my code not working. Appear this error:"
Rodrigo Franco
Rodrigo Franco on 1 Jun 2020
Yeahh.... Put the teacher wanna without the function all or ismember

Answers (1)

David Hill
David Hill on 1 Jun 2020
I assume you can use sum.
vector=[];
for k=1:size(A,1)
for m=1:size(B,1)
if sum(B(m,:)==A(k,:))==size(A,2)
vector=[vector,m];
end
end
end
B(vector,:)=[];

Community Treasure Hunt

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

Start Hunting!