当前位置:网站首页>普氏分析法-MATLAB工具箱函数
普氏分析法-MATLAB工具箱函数
2022-08-02 03:36:00 【CS科研GO】
Hello,everyone!
我是鲁班·,一个热衷于科研和软开的胖子!
1 理论
Procrustes Analysis普氏分析法,此博客对普氏分析法理论介绍的还不错,有兴趣的同学可以读一读。
2 MATLAB函数
2.1 MATLAB函数介绍-procrustes
procrustes Procrustes Analysis
D = procrustes(X, Y) determines a linear transformation (translation,
reflection, orthogonal rotation, and scaling) of the points in the
matrix Y to best conform them to the points in the matrix X. The
"goodness-of-fit" criterion is the sum of squared errors. procrustes
returns the minimized value of this dissimilarity measure in D. D is
standardized by a measure of the scale of X, given by
sum(sum((X - repmat(mean(X,1), size(X,1), 1)).^2, 1))
i.e., the sum of squared elements of a centered version of X. However,
if X comprises repetitions of the same point, the sum of squared errors
is not standardized.
X and Y are assumed to have the same number of points (rows), and
procrustes matches the i'th point in Y to the i'th point in X. Points
in Y can have smaller dimension (number of columns) than those in X.
In this case, procrustes adds columns of zeros to Y as necessary.
[D, Z] = procrustes(X, Y) also returns the transformed Y values.
[D, Z, TRANSFORM] = procrustes(X, Y) also returns the transformation
that maps Y to Z. TRANSFORM is a structure with fields:
c: the translation component
T: the orthogonal rotation and reflection component
b: the scale component
That is, Z = TRANSFORM.b * Y * TRANSFORM.T + TRANSFORM.c.
[...] = procrustes(..., 'Scaling',false) computes a procrustes solution
that does not include a scale component, that is, TRANSFORM.b == 1.
procrustes(..., 'Scaling',true) computes a procrustes solution that
does include a scale component, which is the default.
[...] = procrustes(..., 'Reflection',false) computes a procrustes solution
that does not include a reflection component, that is, DET(TRANSFORM.T) is
1. procrustes(..., 'Reflection','best') computes the best fit procrustes
solution, which may or may not include a reflection component, 'best' is
the default. procrustes(..., 'Reflection',true) forces the solution to
include a reflection component, that is, DET(TRANSFORM.T) is -1.
Examples:
% Create some random points in two dimensions
n = 10;
X = normrnd(0, 1, [n 2]);
% Those same points, rotated, scaled, translated, plus some noise
S = [0.5 -sqrt(3)/2; sqrt(3)/2 0.5]; % rotate 60 degrees
Y = normrnd(0.5*X*S + 2, 0.05, n, 2);
% Conform Y to X, plot original X and Y, and transformed Y
[d, Z, tr] = procrustes(X,Y);
plot(X(:,1),X(:,2),'rx', Y(:,1),Y(:,2),'b.', Z(:,1),Z(:,2),'bx');
2.2 procrustes 测试实例
- data 数据集
data =
7.61597019000000
6.76320399000000
6.60918327200000
6.31725582000000
7.11964454600000
7.43044326800000
7.96325953100000
7.80692535700000
7.56442238700000
7.72914905000000
8.12539049300000
9.00709395200000
9.90960423500000
11.3552868200000
11.8654178800000
12.6554510100000
13.1595179900000
13.2571674800000
13.4085209200000
13.3154797800000
12.9042477900000
12.5759433300000
12.3723241500000
12.0329882400000
11.6008698000000
11.3132455600000
11.1818076300000
10.8807610100000
10.7673431100000
10.6941123700000
10.6389603000000
10.6410223100000
10.5608535500000
10.3697213600000
10.4243787300000
10.4770807500000
10.5255527700000
10.7548124400000
10.8544539000000
10.8575230400000
- matlab代码
% 图像差异
figure
subplot(1,2,1)
plot(data(1:20));
subplot(1,2,2)
plot(data(1:20));
figure
subplot(1,2,1)
plot(data(1:20));
subplot(1,2,2)
plot(data(21:40));
% 结果差异
procrustes(data(1:20),data(1:20))
procrustes(data(1:20),data(21:40))
- 仿真结果
- 图片
- 结果
ans =
0
ans =
0.6163
内容靠得住,关注不迷路。
边栏推荐
- MongoDB相关记录
- 激光驱鸟器
- 深度学习基础之过拟合、欠拟合问题和正则化
- 深蓝学院-手写VIO作业-第一章
- 深蓝学院-视觉SLAM十四讲-第五章作业
- The slave I/O thread stops because master and slave have equal MySQL server ids
- 注意!软件供应链安全挑战持续升级
- ftp服务的部署和优化
- 树莓派4B开机自动挂载移动硬盘,以及遇到the root account is locked问题
- VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tupl
猜你喜欢

jetracer_pro_2GB AI Kit系统安装使用说明

三维目标检测之OpenPCDet环境配置及demo测试

ffmpeg推流USB到rtsp

change file extension

其他语法和模块的导出导入

Kubernetes中Pod对象学习笔记

Django、Rest framework访问数据库获取数据

位居榜首 | 未来智安荣登CCIA「2022年中国网安产业潜力之星」榜单

心余力绌:企业面临的软件供应链安全困境

VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tupl
随机推荐
Mysql数据库入门 (基础知识点 由来 各种指令 如何运用)
STM32/TMS320F2812+W5500硬软件调试总结
基于sysbench工具的压力测试---MyCat2.0+MySql架构
asyncawait和promise的区别
arr的扩展方法、数组的遍历及其他方法
Your device is corrupt. It cant‘t be trusted and may not work propely.
4个不可不知的“安全左移”的理由
深度学习基础之batch_size
箭头函数及其this的指向
注意!软件供应链安全挑战持续升级
想低成本保障软件安全?5大安全任务值得考虑
flask简单接口实现
webdriver封装
ffmpeg推流USB到rtsp
音视频文件的码率与大小计算
Centos7下使用systemd管理redis服务启动
二进制中1的个数
腾讯云+keepalived搭建云服务器主备实践
盒子移动和滚动加载效果练习
2022 开源软件安全状况报告:超 41% 的企业对开源安全没有足够的信心
