Replace elements between two matrices
Afficher commentaires plus anciens
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
Réponse acceptée
Plus de réponses (1)
Chaya N
le 7 Déc 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 commentaires
Image Analyst
le 7 Déc 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
le 7 Déc 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?
Catégories
En savoir plus sur Library Development dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!