Effacer les filtres
Effacer les filtres

mean from intersection matrix

4 vues (au cours des 30 derniers jours)
eko supriyadi
eko supriyadi le 16 Oct 2021
Commenté : eko supriyadi le 16 Oct 2021
Hi matlab community
Suppose i have matrix:
a = [1,3,3,2,2,3,3,4,3,1,3];
b = [1,1,1,3,4,1,2,1,4,1,1];
c = [2,2,2,4,2,3,3,2,1,3,8];
now, I want to get the mean value (from matrix c) of the intersection of matrices [ab] which have the same value, like this:
a = [1,3,2,2,3,4,3];
b = [1,1,3,4,2,1,4];
c = [2.5,3.75,4,2,3,2,1]; %final result
how to do it? tks :)

Réponse acceptée

Ive J
Ive J le 16 Oct 2021
This should work:
a = [1,3,3,2,2,3,3,4,3,1,3];
b = [1,1,1,3,4,1,2,1,4,1,1];
c = [2,2,2,4,2,3,3,2,1,3,8];
x = [a; b];
[~, ia, ic] = unique(x.', 'stable', 'rows');
newC = arrayfun(@(x) mean(c(ic == x)), unique(ic)).'
newC = 1×7
2.5000 3.7500 4.0000 2.0000 3.0000 2.0000 1.0000
  1 commentaire
eko supriyadi
eko supriyadi le 16 Oct 2021
interesting answer, next is:
d=[a(ia)' b(ia)' newC].';
then if there is another method can be replied here.. tks Ive

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB 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