Replace elements between two matrices
2 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Image Analyst
2016-12-7
Try this:
A= [8 1;
16 2]
B= [8 10;
16 5]
% If A & B are integers
rowsToReplace = A(:, 1) == B(:, 1)
C = B; % Initialize C to B.
% Now, replace the rows that need replacing:
C(rowsToReplace, 1) = A(rowsToReplace, 2)
更多回答(1 个)
Chaya N
2016-12-7
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 个评论
Image Analyst
2016-12-7
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?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 NaNs 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!