Use Vectorisation to perform the squared distance between two different arrays

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 Kommentar

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?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

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 Kommentar

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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Gefragt:

ZEE
am 2 Sep. 2018

Kommentiert:

ZEE
am 3 Sep. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by