matlab和投影寻踪

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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好像不行

相关文档
最新文档