필터 지우기
필터 지우기

Use Vectorisation to perform the squared distance between two different arrays

조회 수: 2 (최근 30일)
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
the cyclist
the cyclist 2018년 9월 2일
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?

댓글을 달려면 로그인하십시오.

채택된 답변

the cyclist
the cyclist 2018년 9월 2일
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
ZEE
ZEE 2018년 9월 3일
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?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by