《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 829|回复: 0
收起左侧

[提问] matlab子函数中if语句出错

[复制链接]
发表于 2013-9-23 13:56:11 | 显示全部楼层 |阅读模式
描述下问题:根据一组样本值,对样本进行聚类,获得最后的聚类系数矩阵
主函数如下:
A=[80,20,100;40,30,30;10,90,60];
global M m ave
M=max(A);
m=min(A);
ave=mean(A);
eta(1,:)=M./sum(M);
eta(2,:)=ave./sum(ave);
eta(3,:)=m./sum(m);
alpha=0;
julei(A)
子函数如下:
function sigma=julei(A)
sigma(3,3)=0;
for i=1:size(A,1)
    for j=1:size(A,2)
        if A(i,j)>=ave(j)
        sigma(i,1)=sigma(i,1)+(A(i,j)-ave(j))/((1+alpha)*M(j)-ave(j))*eta(i,j);
        sigma(i,2)=sigma(i,2)+((1+alpha)*M(j)-A(i,j))/((1+alpha)*M(j)-ave(j))*eta(i,j);
        else
        sigma(i,2)=sigma(i,2)+(A(i,j)-(1-alpha)*m(j))/(ave(j)-(1-alpha)*m(j))*eta(i,j);
        sigma(i,3)=sigma(i,3)+((ave(j)-A(i,j))/(ave(j)-(1-alpha)*m(j)))*eta(i,j);
        end
    end
end
sigma
下面是运行结果

??? Undefined function or method 'ave' for input arguments of type 'double'.

Error in ==> julei at 5
        if A(i,j)>=ave(j)

Error in ==> zhuchengxu at 10
julei(A)
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2020-11-27 11:26 , Processed in 0.050965 second(s), 13 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表