问题描述
我正在尝试在 MATLAB 中创建此函数。从上一个问题,我已经解决了 a
作为 agrid2
和 f(a)
作为 fx
,其维度是 600*1
和 600*2
-这两个向量是绝对正确的:
%calculating gini coefficent
m = 600;
for i = 1:m %expanded length of kgrid of ai prevIoUsly calculated in invarden.m
mu = sum(agrid2.*fx(m,:));
gini = sum(fx(m,1)*(fx(m,2))*abs(fx(m,1)-fx(m,2)))./(2*mu);
end
但是,我的代码返回所有空白答案。
我做错了什么?非常感谢任何建议!
解决方法
不清楚矩阵 agrid2
和 fx
是什么,但是 mu
应该在 for 循环之外计算,因为在公式 (1) 中它不包含在总结。因此,您应该先计算 mu
,然后计算 G
。
此外,从您的代码看来,在函数 abs()
中,您正在考虑使用 f
而不是 a
。
另外,我很确定您需要一个双循环,因为 (1) 中有两个求和。