compare matrices with different dimension
Afficher commentaires plus anciens
Hi,
A = [100123 1 1 50;
100123 1 2 53;
100123 1 3 55;
100456 2 1 78;
100456 2 2 75;
100789 1 1 80]
B = [100123 1 56;
100456 2 76]
Comparing the 1st and 2nd columns of A and B, I've to compute the difference between each value in the 4th comlumn of A and the values in the 3th column of B.
In the case to compute (A - B), the expected result is a Matrix as
C = [100123 1 1 -6;
100123 1 2 -3;
100123 1 3 -1;
100456 2 1 2;
100456 2 2 -1]
Tnx for any suggestion
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 10 Jan 2015
Try this:
A = [100123 1 1 50;
100123 1 2 53;
100123 1 3 55;
100456 2 1 78;
100456 2 2 75;
100789 1 1 80]
B = [100123 1 56;
100456 2 76]
[rowsA, colA] = size(A);
[rowsB, colB] = size(B);
B_rep = [repmat(B(1,:), [rowsA/rowsB, 1]); repmat(B(2,:), [rowsA/rowsB, 1])]
C = A; % Initialize
C(:, 4) = A(:, 4) - B_rep(:, 3)
However I get:
C =
100123 1 1 -6
100123 1 2 -3
100123 1 3 -1
100456 2 1 2
100456 2 2 -1
100789 1 1 4
Since you, for some reason , want the last row cropped off of C, you can then do this:
C = C(1:end-1,:)
to get exactly what you listed.
Catégories
En savoir plus sur Logical 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!