Я хочу иметь функцию matlab для установки сферы, учитывая, что X = [x, y, z].Сфера с заданным радиусом, matlab
Радиус фиксированный/известный. Его следует принимать во внимание и не оценивать снова. Оценка радиуса вызывает дополнительный источник ошибок. я узнал два Полезных ссылки
http://de.mathworks.com/matlabcentral/fileexchange/34129-sphere-fit--least-squared-
я могу поместить сферу, используя обе функции, но как я могу исправить мой радиус и не оцениваюсь.
------------------------------------- EDITED -------- ----------------------------------------
Я пробовал
POINTS = [...
-1.6510 0.4190 0.1580
-1.6410 0.4390 0.1770
-1.6620 0.4380 0.1320
-1.6610 0.3990 0.1980
-1.6510 0.4180 0.2090
-1.6460 0.4470 0.2130
-1.6450 0.4730 0.1950
-1.6540 0.4720 0.1480
-1.6730 0.3960 0.1530
-1.6790 0.3850 0.1770
-1.6450 0.4220 0.1850
-1.6470 0.4360 0.1540
-1.6570 0.4600 0.1370
-1.6770 0.4160 0.1300
-1.6630 0.4280 0.2340
-1.6690 0.4070 0.2250
-1.6550 0.4540 0.2270
-1.6430 0.4690 0.1740
-1.6410 0.4400 0.1930
-1.6560 0.4030 0.1880
-1.6600 0.3990 0.1720
-1.6400 0.4530 0.1810];
Radius_act= 0.0725;
Center_act = [-1.712637 0.448658 0.183808 ];
XYZ = bsxfun(@plus,Radius_act*POINTS, Center_act);
f = @ (C) sum ((сумма (bsxfun (@ минус, XYZ, C).^2,2) -Radius_act^2).^2);
estimateCenter = fminsearch(f, [0,0,0])
[Center_LSE,Radius_LSE] = sphereFit(M)
НО ПОЧЕМУ это другое ????????????
estimateCenter = -1.7640 0.4576 0.1906
Center_LSE = -1.7122 0.4485 0.1838
Radius_LSE = 0.0725
Я не понимаю, в чем проблема. Радиус - это второй вывод второго скрипта, который вы нашли на центральном матале. У вас уже есть это. – Bentoy13
@ Bentoy1 Радиус фиксирован/известен. Его следует принимать во внимание и не оценивать снова. Оценка радиуса вызывает дополнительный источник ошибок – Shahgee
А, хорошо, я понимаю вашу проблему! – Bentoy13