Replace elements between two matrices
Ältere Kommentare anzeigen
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
Akzeptierte Antwort
Weitere Antworten (1)
Chaya N
am 7 Dez. 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 Kommentare
Image Analyst
am 7 Dez. 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
am 7 Dez. 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?
Kategorien
Mehr zu Library Development finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!