Effacer les filtres
Effacer les filtres

Use Vectorisation to perform the squared distance between two different arrays

2 vues (au cours des 30 derniers jours)
Hi, I'm trying to write a vectorised code to calculate the squared distance between an RGB point and different k Means, and then find the minimum squared distance. suppose that:
RGB= [55;60;100]
Means= [ 209;205;203, 115;110;20, 17;18;20 ]
and squared distance should compare the RGB with each Means(column vector).
for instance,
D1=[(55-209)^2+(60-205)^2+(100-203)^2].
How can I do this without using a loop?
  1 commentaire
the cyclist
the cyclist le 2 Sep 2018
Your specification of the Means variable is not going to give a valid array. If you meant it to be a column vector, it should be all semicolons, with no commas. Is that what you intended? Or is it a 3x3 matrix?

Connectez-vous pour commenter.

Réponse acceptée

the cyclist
the cyclist le 2 Sep 2018
If I understand what you are trying to do, I would code this as
RGB = [55, 60, 100];
Means = [ 209, 205, 203;
115, 110, 20;
17, 18, 20 ]
D = sum((RGB-Means).^2,2)
and not define separate D1, D2, D3 variables.
  1 commentaire
ZEE
ZEE le 3 Sep 2018
suppose we want to compare all the RGB values in an image with each of the k means. will we be able to do this with vectorisation?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices 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