Вызовите свойство 'ScreenPixelsPerInch':
dpix=sqrt((x1-x2)^2+(y1-y2)^2); %# calculate distance in pixels
pixperinch=get(0,'ScreenPixelsPerInch'); %# find resolution of your display
dinch=dpix/pixperinch; %# convert to inches from pixels
dcm=dinch*2.54; %# convert to cm from inches
Или для однострочного подхода:
dcm=sqrt((x1-x2)^2+(y1-y2)^2))/get(0,'ScreenPixelsPerInch')*2.54;
РЕДАКТИРОВАТЬ: Вы можете проверить, если ваша система получает правильный размер экрана и точек на дюйм. Если вы знаете размер, соотношение сторон и разрешение вашего монитора, это легко сделать. Например, моя установка:
Широкоэкранный 16: 9 23-дюймовый монитор с разрешением 1920x1080p
h^2+w^2=23^2 and h/w=9/16
дает
h=11.28 and w=20.05 inches
get(0,'Screensize')
возвращает [1 1 1920 1080]
и get(0,'ScreenPixelsPerInch')
возвращает 96
То есть 1920/20.05 = 95.76
и 1080/11.28 = 95.74
Возможно, мне повезло, но этот метод мне помог.