matlab各个指令的含义,[MATLAB基础] 求解这段指令的意思,越详细越好,谢谢啦
求解这段指令的意思,越详细越好,谢谢啦
function [Kp,T2]=KPCA(ax,ay)
[Nx]=size(ax);
mean_X =mean(ax);
axb=ax;
std_X=std(ax);
ax=ax-mean_X(ones(Nx,1),:);
std_X(find(std_X==0))=1;%数据预处理
ax=ax./std_X(ones(Nx,1),:);
c=10000;
% gama=0.05;
% ni=1;
% F1=ax(1,:);
% F=F1';
% for ib=2:Nx
% for i=1:ni
% for j=1:ni
%
% batar1(ib).block(i,j)=exp(-norm(ax(i,:)-ax(j,:))^2/c);
% end
% batar2(i,1)=exp(-norm(ax(i,:)-ax(ib,:))^2/c);
% batar3(1,i)=exp(-norm(ax(ib,:)-ax(i,:))^2/c);
% end
% s1=exp(-norm(ax(ib,:)-ax(ib,:))^2/c);
% batar= batar3(1,i)*inv(batar1(ib).block)* batar2(i,1);
% s=(s1- batar)/s1;
% if s>sqrt(gama)
% ni=ni+1;
% F=[F ax(ib,:)'];
% end
%
%
% end
% AX=F'%训练集基的提取结束
[N]=size(ax,1);
for i=1:N
for j=1:N
K(i,j)=exp(-norm(ax(i,:)-ax(j,:))^2/c);%求核矩阵
end
end
n1=ones(N,N);
N1=1/N*n1;
Kp=K-N1*K-K*N1+N1*K*N1;
[u,s,v]=svd(Kp);
lamda=s*(1/(N-1));
P=v;
lamda=diag(lamda);
B=length(find(lamda>1e-10)); %求非零的特征值个数
%求主元个数
npc=1;
while sum(lamda(1:npc))/sum(lamda(1:B))<0.9
npc=npc+1;
end
%求特征空间有效维数
DimFS=1;
while sum(lamda(1:DimFS))/sum(lamda(1:B))<=0.99
DimFS=DimFS+1;
end
lamda=diag(lamda);
for i=1:B
% P(:,i)=P(:,i)/norm(P(:,i)*s(i,i));
% P(:,i)=P(:,i)/(norm(P(:,i))*sqrt(N*lamda(i,i)));
P(:,i)=P(:,i)/(sqrt((N-1)*lamda(i,i)));
end
[Ny]=size(ay,1);
mean_X =mean(axb);
std_X = std(axb);
[num_sample] = Ny;
ay = ay-mean_X(ones(num_sample,1),:);
ay = ay./std_X(ones(num_sample,1),:);
% mean_y = mean(ay);
% std_y=std(ay);
% ay = ay-mean_y(ones(Ny,1),:);
% std_y(find(std_y==0))=1;%数据处理
% ay = ay./std_y(ones(Ny,1),:);
for i=1:Ny
for j=1:N
Ky(i,j)=exp(-norm(ay(i,:)-ax(j,:))^2/c);
end
end
t1=ones(1,N);
t11=1/N*t1;
for i=1:Ny
kp1(i,:)= Ky(i,:)-t11*K- Ky(i,:)*N1+t11*K*N1;
end
for i=1:Ny
for k=1:B
t(i,k)=P(:,k)'*kp1(i,:)';
end
end
% 求T2,SPE
% covtyb=inv(t'*t);
for i=1:Ny
T2(i)=t(i,1:npc)*inv(lamda(1:npc,1:npc))*t(i,1:npc)'; %也可以
% SPE(i)=t(i,1:npc)*t(i,1:npc)';
% T2(1,i)=t(i,1:npc)*(covtyb(1:npc,1:npc))*t(i,1:npc)';
% SPE(i)=t(i,(npc+1):B)*t(i,(npc+1):B)';
SPE(i)=1-(2/N)*ones(N,1)'*Ky(i,:)'+(1/(N^2))*ones(N,1)'*K*ones(N,1)-t(i,1:npc)*t(i,1:npc)';
end
%T2,SPE控制线
t2cl=npc*(N-1)*(N+1)*icdf('f',0.99,npc,N-npc)/(N*(N-npc));
for i=1:3
theta(i)=trace((lamda(npc+1:DimFS,npc+1:DimFS))^i);
end
h0=1-2*theta(1)*theta(3)/(3*theta(2)^2);
ca=icdf('norm',0.99,0,1);
s_cl=theta(1)*(ca*sqrt(2*theta(2)*h0^2)/theta(1)+1+theta(2)*h0*(h0-1)/theta(1)^2)^(1/h0)*4;
for i=1:Ny
t2cl1(i)=t2cl;
end
for i=1:Ny
s_cl1(i)=s_cl;
end
figure
plot(1:Ny,T2(1:Ny),'k');
hold on;
plot(1:Ny,t2cl1(1:Ny),'r');
title('T2');
hold off;
figure
plot(1:Ny,SPE(1:Ny),'k')
hold on;
plot(1:Ny, s_cl1(1:Ny),'r');
title('SPE');
hold off;
matlab各个指令的含义,[MATLAB基础] 求解这段指令的意思,越详细越好,谢谢啦相关推荐
- matlab各个指令的含义,matlab的常用指令及其含义
. . . . . . . . matlab的常用指令及其含义 最佳答案matlab常用命令速查 sizeabs 绝对值.模.字符的ASCII码值acos 反余弦 acosh 反双曲余弦 acot 反 ...
- matlab曲线拟合sse等含义,Matlab曲线拟合SSE等含义
Matlab曲线拟合SSE等含义 使用过Matlab的拟合.优化和统计等工具箱的网友,会经常遇到下面几个名词: SSE(和方差.误差平方和):The sum of squares due to err ...
- docker from指令的含义_Docker中Dockerfile多From 指令存在的意义
Docker 17.05版本以后,新增了Dockerfile多阶段构建.所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个 FROM 指令.这样做有什么意义呢? 老版本Docker中为什 ...
- java array arraylist_java 基础 array arraylist..越详细越好。
展开全部 java.util 类 ArrayList java.lang.Object java.util.AbstractCollection java.util.AbstractList java ...
- MATLAB说文本命令超过,MATLAB基础
可以直接调用,而且因为用户文件同MATALB的库函数在形式上一样,所以用户文件也可作为MATALB的库函数来调用.因而,用户可以根据自己的需要方便地建立和扩充新地库函数,以便提高MATALB地使用效率 ...
- MATLAB学习笔记5:绘图基础与数据可视化(中)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...
- MATLAB学习笔记3:MATLAB编程基础(前半)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...
- matlab指令vpa(j10),matlab中vpa函数
Matlab中矩阵函数_IT/计算机_专业资料.Matlab中矩阵函数 矩阵转置... Matlab 中 solve 函数主要是用来求解线性方程组的解析解或者精确解.对于得 出的结果是符号变量,可以通 ...
- MATLAB学习笔记2:MATLAB基础知识(下)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...
最新文章
- 禁止页面复制功能 js禁止复制 禁用页面右键菜单
- 科学家发现量子大脑传感器可以跟踪脑电波,这可能对发现脑疾病至关重要
- python绘图函数m_python绘图数据m
- Leecode20. 有效的括号——Leecode大厂热题100道系列
- [导入]ASP.NET中上传并读取Excel文件数据
- 什么是响应式布局设计
- LeetCode 33. Search in Rotated Sorted Array
- Docker-07:Docker网络管理
- 纯js手写一个element的弹窗,方便修改自己想要的样式
- 云数据库和本地数据库有什么区别?
- 感知机-收敛性证明及代码实现
- 银行数字化转型导师坚鹏:数字化背景下BLM银行网点转型
- 武汉计算机学校分数线,武汉交通学校2021年招生录取分数线
- 基于物理的渲染技术(PBR)系列一
- kafka+flume 实时数据处理
- LuLu UI - 腾讯阅文集团出品的“半封装” 开源 Web UI 组件库,特点是面向设计、简单灵活、支持 Vue
- VRTK4开发VR2:射线
- Oraclenbsp;X$Tables
- 融云韩迎:中国技术型公司出海才刚开始,未来有很大发展空间
- 安卓网页广告拦截_Android webview广告过滤的实现
热门文章
- python提示对话框自动关闭_Python实现定时自动关闭的tkinter窗口方法
- 局部放大_Origin教程|巧用ZOOM功能做数据对比和快速绘制局部放大图
- java 查找排序_查找与排序算法(Java实现)
- restify mysql_[菜鸟试水]关于Nodejs搭建后台API服务(Mysql-Restify)[下]
- 凑钱系统C语言,C语言课程设计报告书凑钱程序.doc
- php 微信转账,php实现微信公众号企业转账功能
- sql 两表数据合并_多表查询SQL语句
- springboot 接口404_资深架构带你学习Springboot集成普罗米修斯
- linux无限刷屏代码,linux下如何实现简单刷屏
- java运行环境_Windows系统java运行环境配置 | 吴文辉博客