matlab和投影寻踪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有没有关于用matlab编制投影寻踪方面的程序代码?
找代码的话,不要直接找。列出关键部分,比如说你的投影寻踪,你认为这里哪些算法才是核心内容,然后寻找这样的代码。最好是给出核心代码的英文翻译。
基于遗传算法的投影寻踪模型Matlab源码
基于遗传算法的投影寻踪模型Matlab源码
%% “投影寻踪+遗传算法优化”的主仿真程序
% GreenSim团队原创作品,转载请注明
%Email:****************
% GreenSim团队主页:/greensim
% [color=red]欢迎访问GreenSim——算法仿真团队→
[url=/greensim]/greensim[/url][/c olor]
%% 第一步:仿真参数设置
clear
clc
close all
load Q5.txt
DD=Q5;%导入D矩阵
[n,p]=size(DD);
np=15; %训练样本的个数,前面1~np个样本用于建立模型,剩下的样本用于预测if np>=n
error('用于预测的样本个数不能大于或等于样本总数,请重新设置');
end
year=1:np;%选择参与计算的样本,默认选择全部
Factor=1:p;%选择部分指标,默认选择全部
D=DD(year,Factor);
K=50; %迭代次数
N=30; %种群规模
Pm=0.3; %变异概率
LB=-ones(1,p); %决策变量的下界
UB=ones(1,p); %决策变量的上界
Alpha=0.1; %窗口半径系数,典型取值0.1b
%% 调用遗传算法优化投影寻踪模型的程序
[BESTX,BESTY,ALLX,ALLY]=GAUCP(K,N,Pm,LB,UB,D,Alpha)
%% 以下均为整理输出结果
%所有数据都在workspace里,最值得关注的三个数据是
% Z 投影指标值,和参考文献里的符号是一致的
% Best_a 最佳投影向量,参考文献里也是用的符号a,这里加了个前缀Best,表示最佳
% BESTY 投影寻踪模型中的目标函数的变化情况,文献中的模型是最大化模型,这里按照惯例,对其加了个负号成为最小化模型
Best_a=(BESTX{K})';%方向向量
disp('最佳投影向量为');
disp(Best_a);
d=zeros(np,p);
DDjmax=max(DD);
DDjmin=min(DD);
for i=1:np
d(i,:)=(DD(i,:)-DDjmin)./(DDjmax-DDjmin);
end
Z=zeros(np,1);
for i=1:np
Z(i)=abs(sum(Best_a.*d(i,:)));
end
Z=abs(Z);
%%
figure(2)%投影散布图
plot(year,abs(Z),'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b' ,'MarkerSize',5);
%axis([1,12,0,2.5]);%图形边界根据需要显示
grid on
xlabel('Year','FontName','Times New Roman','FontSize',12);
ylabel('Projective Value','FontName','Times New Roman','Fontsize',12);
%%
figure(3)
[newZ,I]=sort(Z);
newyear=year(I);
plot(year,abs(newZ),'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor', 'b','MarkerSize',5);
%axis([1,12,0,2.5]);%图形边界根据需要显示
grid on
xlabel('Year','FontName','Times New Roman','FontSize',12);
ylabel('Projective Value','FontName','Times New Roman','Fontsize',12);
%%
n2=n-np;
d2=zeros(n2,p);
for i=1:n2
d2(i,:)=(DD(i+np,:)-DDjmin)./(DDjmax-DDjmin);
end
Z2=zeros(n2,1);
for i=1:n2
Z2(i)=abs(sum(Best_a.*d2(i,:)));
end
Z2=abs(Z2);
disp('预测样本的投影预测值为');
disp(Z2);
%%
figure(4)%投影散布图
plot([Z;Z2],'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',5);
hold on
plot((np+1):n,Z2,'bo','LineWidth',1,'MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5); legend('训练样本投影值','预测样本投影值');
%axis([1,12,0,2.5]);%图形边界根据需要显示
grid on
xlabel('Year','FontName','Times New Roman','FontSize',12);
ylabel('Projective Value','FontName','Times New Roman','Fontsize',12);
求助】请问matlab中有没有直接实现投影算法的函数
请问高手,matlab里面有专门实现投影的函数吗?如果有的话,怎么实现,如果没有,怎去做这个算法呢?
具体问题是,一幅二值图像,要求他的水平和垂直投影,就是统计水平或者垂直方向上象素值为1的象素数
申请开设新版须知
Re:【求助】请问matlab中有没有直接实现投影算法的函数
hist好像不行