Use Vectorisation to perform the squared distance between two different arrays
2 views (last 30 days)
Show older comments
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 Comment
the cyclist
on 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?
Accepted Answer
the cyclist
on 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.
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!