Replace elements between two matrices
Show older comments
I have two matrices A and B:
A= [8 1;
16 2];
B= [8 10;
16 5]
I want to replace any element in B that exist in the 1st column of A, by its corresponding value in the second column of A. The result should be:
C=[1 10;
2 5];
Thanks for help
Accepted Answer
More Answers (1)
Chaya N
on 7 Dec 2016
Try the setxor function. You may need to tweak the directionality of the inputs a bit, so use something like
C = setxor(A',B','rows')'
3 Comments
Image Analyst
on 7 Dec 2016
Ismael's "Answer" moved here since it's really a comment to Chaya N:
Thanks Chaya but that did not work, it deals with the whole row while I need any similar elements. Look at the same example with one different element:
A= [4 1;
16 2];
B= [8 10;
16 5];
here we have one element in the first column of B different than A
Matlab returns:
C =
1 4 8 10
2 16 16 5
The true answer should be:
C = [8 10;
2 5]
Image Analyst
on 7 Dec 2016
Ismael, this code:
A= [8 1;
16 2]
B= [8 10;
16 5]
C = setxor(A',B','rows')'
gives
A =
8 1
16 2
B =
8 10
16 5
C =
1 10
2 5
which is the C you originally asked for. Now you're giving a different desired value for C. Which is it?
Categories
Find more on Library Development 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!