exponenta event banner

procrustes

Анализ заготовок

Синтаксис

d = procrustes(X,Y)
[d,Z] = procrustes(X,Y)
[d,Z,transform] = procrustes(X,Y)
[...] = procrustes(...,'scaling',flag)
[...] = procrustes(...,'reflection',flag)

Описание

d = procrustes(X,Y) определяет линейное преобразование (перемещение, отражение, ортогональное вращение и масштабирование) точек в матрице Y для их наилучшего соответствия точкам в матрице X. Критерием соответствия является сумма квадратичных ошибок. procrustes возвращает минимизированное значение этого показателя разнородности в d. d стандартизирован с помощью измерения шкалы X, данное:

sum(sum((X-repmat(mean(X,1),size(X,1),1)).^2,1))

То есть сумма возведенных в квадрат элементов центрированной версии X. Однако, если X содержит повторы одной и той же точки, сумма квадратичных ошибок не стандартизирована.

X и Y должны иметь одинаковое количество точек (строк), и procrustes матчи Y(i) кому X(i). Точки в Y может иметь меньшую размерность (количество столбцов), чем в X. В этом случае procrustes добавляет столбцы нулей в Y при необходимости.

[d,Z] = procrustes(X,Y) также возвращает преобразованное Y значения.

[d,Z,transform] = procrustes(X,Y) также возвращает преобразование, отображающее Y кому Z. transform является массивом структуры с полями:

  • c - Компонент перевода

  • T - Компонент ортогонального вращения и отражения

  • b - Масштабный компонент

То есть:

c = transform.c;
T = transform.T;
b = transform.b;

Z = b*Y*T + c;

[...] = procrustes(...,'scaling',flag), когда flag является false, позволяет вычислить преобразование без масштабного компонента (то есть с b равно 1). Дефолт flag является true.

[...] = procrustes(...,'reflection',flag), когда flag является false, позволяет вычислить преобразование без компонента отражения (то есть с det(T) равно 1). Дефолт flag является 'best', которая вычисляет наиболее подходящее преобразование, независимо от того, включает ли оно компонент отражения. A flag из true заставляет преобразование вычисляться с компонентом отражения (то есть с det(T) равно -1)

Примеры

свернуть все

Создайте образцы данных в двух измерениях.

rng('default')
n = 10;  
X = normrnd(0,1,[n 2]);

Поворот, масштабирование, перемещение и добавление шума в выборочные точки.

S = [0.5 -sqrt(3)/2; sqrt(3)/2 0.5];
Y = normrnd(0.5*X*S+2,0.05,n,2);

Соответствовать Y кому X с использованием анализа procrustes.

[d,Z,tr] = procrustes(X,Y);

Постройте график оригинала X и Y с преобразованным Y .

plot(X(:,1),X(:,2),'rx',Y(:,1),Y(:,2),'b.',Z(:,1),Z(:,2),'bx');

Figure contains an axes. The axes contains 3 objects of type line.

Ссылки

[1] Кендалл, Дэвид Г. «Обзор статистической теории формы». Статистическая наука. т. 4, № 2, 1989, стр. 87-99.

[2] Букштейн, Фред Л. Морфометрические инструменты для данных ориентиров. Кембридж, Великобритания: Cambridge University Press, 1991.

[3] Себер, Г. А. Ф. Многомерные наблюдения. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 1984.

См. также

|

Представлен до R2006a