
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.60] |
![]() |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Вот база данных в экселе, и вот код в матлабе ее открывающий
Цитата В структуре f все данные и результаты вычислений: f.d - исходные данные, f.Mc - центр фигуры(точка О на графике эллипса), f.r - расстояния от центра фигуры до точек ее контура.function openexcel [data, headertext] = xlsread('D:\Prog\MAT\Projects\Ver13\private\Formy2-8_3.xls'); [row,col]=size(data); data = data(3:row,1:col); f = []; for i = 1:21 f(i).d = data(:,(2*i-1):2*i); f(i).d(any(isnan(f(i).d),2),: ) = []; f = radiuses(f,i); end end function f = radiuses(f,ind) f(ind).Mc = centermass(f(ind).d); X = f(ind).Mc.X; Y = f(ind).Mc.Y; for i = 1:length(f(ind).d) f(ind).r(i) = sqrt((X-f(ind).d(i,1))^2+(Y-f(ind).d(i,2))^2); end end function M = centermass(a) n = length(a); M.X = sum(a(:,1))/n; M.Y = sum(a(:,2))/n; end Идея решения состоит в движении от графика радиусов к контуру. Как определить, например, что данная фигура эллипс? Вычисляется максимальный радиус max(f.r), допустим точка А. Продолжаем АО до пересечения в точке В. Если eps < abs(AO - OB), то это не эллипс (eps - вычисляется опытным путем), иначе проводим СD. Находим а и b и ур-е эллипса. Теперь любую точку на контуре можно проверить на принадлежность к этому уравнению. Вычисляем напр x^2/a^2 + y^2/b^2 = F(i) для всех точек и проверяем девиацию F. ![]() |
Сообщ.
#17
,
|
|
|
Tur не могли бы Вы скинуть вашу базу данных, если это возможно, на email: rrazer@mail.ru. Хотел бы попробовать решить эту задачу с помощью нейросетей. Заранее спасибо
|