MATLAB定义过X0 怎么还是提示没有定义变量
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/24 10:24:40
MATLAB定义过X0 怎么还是提示没有定义变量
function output=grayrela(x0)
%参考因子与比较因子共同存储在一个矩阵x0中,参考因子位于第一列
%斜率序列
for i=2:length(x0(:,1))
x1(i,:)=x0(i,:)-x0(i-1,:);
end
%标准化
m=length(x1(1,:));
for i=1:m
x2(:,i)=x1(:,i)/std(x1(:,i));
end
%排序
[y,pos]=sort(x2(:,1));
x2_sorted=x2(pos,:);
% 判定关联性质
n=length(x1(:,1));
k=[1:n]';
for j=1:m
sig_j(j)=qiuhe(k.*x2_sorted(:,j))-qiuhe(x2_sorted(:,j))*qiuhe(k)/n;
end
%caculation of distantion
for j=2:m
dist_0i(:,j)=abs(sign(sig_j(:,j)./sig_j(:,1)).*x2_sorted(:,j)-x2_sorted(:,1));
end
%计算关联系数
for i=1:n
for j=1:m
coef_rela(i,j)=(min(dist_0i)+0.5*max(dist_0i))/(dist_0i(i,j)+0.5*max(dist_0i));
end
end
for j=1:m
output(j)=qiuhe(coef_rela(:,j))/n;
end
function output=grayrela(x0)
%参考因子与比较因子共同存储在一个矩阵x0中,参考因子位于第一列
%斜率序列
for i=2:length(x0(:,1))
x1(i,:)=x0(i,:)-x0(i-1,:);
end
%标准化
m=length(x1(1,:));
for i=1:m
x2(:,i)=x1(:,i)/std(x1(:,i));
end
%排序
[y,pos]=sort(x2(:,1));
x2_sorted=x2(pos,:);
% 判定关联性质
n=length(x1(:,1));
k=[1:n]';
for j=1:m
sig_j(j)=qiuhe(k.*x2_sorted(:,j))-qiuhe(x2_sorted(:,j))*qiuhe(k)/n;
end
%caculation of distantion
for j=2:m
dist_0i(:,j)=abs(sign(sig_j(:,j)./sig_j(:,1)).*x2_sorted(:,j)-x2_sorted(:,1));
end
%计算关联系数
for i=1:n
for j=1:m
coef_rela(i,j)=(min(dist_0i)+0.5*max(dist_0i))/(dist_0i(i,j)+0.5*max(dist_0i));
end
end
for j=1:m
output(j)=qiuhe(coef_rela(:,j))/n;
end
首先这是一个函数定义的M-file 如果它是完整的就可以执行,而他不完整,因为X0是形参,你把这个文件保存,注保存的名字为output=grayrela,另建一个M-file,定义一个X0,然后调用这个函数,就可以执行了.