Effacer les filtres
Effacer les filtres

How can I replace value of specific cell value depending on another matrix?

2 vues (au cours des 30 derniers jours)
A=[8 3 1; 0 0 0; 7 9 7; 5 5 5; 1 4 5]; D=[5 5 0; 7 9 0]; How can I compare between A and D depending on the first two columns and update the D matrix like,
D_modified=[5 5 5; 7 9 7];

Réponse acceptée

Birdman
Birdman le 4 Avr 2018
Modifié(e) : Birdman le 4 Avr 2018
D_modified=A(all(ismember(A(:,1:2),D(:,1:2)),2),:)

Plus de réponses (1)

Akira Agata
Akira Agata le 4 Avr 2018
If some rows in D does not have corresponding rows in A, need some more trick. Here is an example.
% Sample data (1st and 4th row of D has no corresponding row in A)
A = [8 3 1; 0 0 0; 7 9 7; 5 5 5; 1 4 5];
D = [5 4 0; 7 9 0; 8 3 0; 8 2 1];
[~,loc] = ismember(D(:,1:2),A(:,1:2),'rows');
idx = loc ~= 0;
D_modified(idx,:) = A(loc(idx),:);
  1 commentaire
Mohammad Hossain
Mohammad Hossain le 4 Avr 2018
I want to modify the D. replace 0 in both rows by corresponding value from A.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Types dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by