马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
使用论坛上搜到的一个预测代码,可是总是出错,自己调试了半天,没解决,请大家帮忙看下,代码如下:- data1=load('b1.txt');
- data=data1(75:4296,:);
- [row,col]=size(data);
- % 确定临域中的各个点到基准点的欧氏距离
- Xk=data(row,:);%Xk为中心点
- Distance=zeros(1,row-1);
- for i=1:row-1
- Mid=data(i,:);
- Minus=Xk-Mid;
- D=0;
- for j=1:col
- D=D+Minus(j)^2;
- end
- Distance(i)=sqrt(D);
- end
- % 找出欧式距离最小的M个点作为中心点的最近临域其值放在Xi中
- M=2*col+1;
- Xi=zeros(M,col);
- % 确定Distance中的最小值
- dm=min(Distance);
- % D中为距离值
- D=zeros(1,M);
- for i=1:M
- Midmin=min(Distance);
- D(i)=Midmin;
- [~,d]=find(Distance==Midmin);
- d=d(1);
- Xi(i,:)=data(d,:);
- Distance(d)=nan;
- end
- %计算权重P
- p=zeros(1,M);
- for i=1:M
- fenzi=exp(dm-D(i));
- fenmu=0;
- for j=1:M
- fenmu=fenmu+exp(dm-D(j));
- end
- p(i)=fenzi/fenmu;
- end
- Forcast=zeros(1,col);
- for i=1:M-1
- Forcast=Forcast+p(i)*Xi(i+1,:);
- end
- % 处理奇异值 和零阶局域法计算的结果对比
- % 计算加权零阶局域法预测出来的值
- Test=mean(Xi,1);
- if Test(col)/2>Forcast(col)
- Forcast=mean(data(row-2:row,:));
- end
- end
复制代码 错误和提示如下:- ??? [~,d]=find(Distance==Midmin);
- |
- Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
复制代码
|