📄 forecast.m
字号:
% 本程序是基于人工免疫原理的天气预报系统的MATLAB实现程序
% 实现了对4、5月份的气象预报
% 具体算法请参考该文献
% 易世华2006年3月15日
clc
clear
load data1
load data2
result=zeros(n,6);
result(:,1:3)=ag(:,13:15);
for i=1:n %第i个抗原
for c=1:8
for j=1:nm(c)
M(j,16,c)=1-sqrt((M(j,1:12,c)-agnor(i,:))*(M(j,1:12,c)-agnor(i,:))');
end
end
[Mmax num]=max(M(:,16,:)); %找出刺激值最大的记忆细胞
[Mmax num2]=max(Mmax(1,1,:));
M(num(1,1,num2),16,num2)=0;
[Mmax num]=max(M(:,16,:));
[Mmax num4]=max(Mmax(1,1,:));
M(num(1,1,num4),16,num4)=0;
[Mmax num]=max(M(:,16,:));
[Mmax num6]=max(Mmax(1,1,:));
M(num(1,1,num6),16,num6)=0;
fore1=zeros(1,8);
fore1(num2)=0.45;
fore2=zeros(1,8);
fore2(num4)=0.35;
fore3=zeros(1,8);
fore3(num6)=0.2;
fore=fore1+fore2+fore3; %3个刺激值最大的记忆细胞投票决定天气情况的预报值
[Mmax num]=max(fore);
switch num
case 1
result(i,4:6)=[0 0 0];
case 2
result(i,4:6)=[0 0 1];
case 3
result(i,4:6)=[0 1 0];
case 4
result(i,4:6)=[0 1 1];
case 5
result(i,4:6)=[1 0 0];
case 6
result(i,4:6)=[1 0 1];
case 7
result(i,4:6)=[1 1 0];
case 8
result(i,4:6)=[1 1 1];
end
end
today=(n-sum(bitxor(result(:,1),result(:,4))))/n
tomorrow=(n-sum(bitxor(result(:,2),result(:,5))))/n
tomorrow2=(n-sum(bitxor(result(:,3),result(:,6))))/n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -