全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
4178 7
2014-04-27
悬赏 20 个论坛币 未解决
各位好,我用运用LeSage的空间计量工具包Jplv7用matlab计算空间杜宾模型时遇到了问题,谁能指点下。
这是源代码
clear all;

% load Anselin (1988) Columbus neighborhood crime data
load anselin.dat;
% 5 columns:
% column1 = crime
% column2 = household income
% column3 = house values
% column4 = latitude coordinate
% column5 = longitude coordinate

n = length(anselin);
y = anselin(:,1);
x = [ones(n,1) anselin(:,2:3)];
latt = anselin(:,4);
long = anselin(:,5);
vnames = strvcat('crime','constant','income','hvalue');

W = make_neighborsw(latt,long,6);
我输入我自己的数据,原数据中好像使用坐标转换的矩阵(上述红的部分);由于我自己做好了空间矩阵,我就把上面的代码换成了:
load Rujing.dat;   %换成了我的数据
load juzhen.dat;   %换成了我的数据


n = length(Rujing);
y = Rujing(:,1);
x = [ones(n,1) Rujing(:,2:8)];
vnames = strvcat('lnI','constant','lnrail','lnroad','lnpop','lnpcgdp','lnFDI','lnhotel','lnresource');


W = juzhen;   %换成了我的矩阵

但是计算时出现如下错误:
??? Error using ==> mtimes
Inner matrix dimensions must agree.


Error in ==> sdm at 97
xsdm = [x W*x(:,2:end)];


Error in ==> sdm_d at 30
results = sdm(y,x,W,info);



谁能帮我一下,非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-4-27 21:11:38
没用过这个包, 看代码应该是矩阵的大小不匹配。   楼主看看你的juzhen. dat和原作者那个W是否一致?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-27 21:13:27
zhangibt 发表于 2014-4-27 21:11
没用过这个包, 看代码应该是矩阵的大小不匹配。   楼主看看你的juzhen. dat和原作者那个W是否一致?
我更换了我自己的数据,矩阵应该不一样了啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-27 21:19:19
guoyongrui 发表于 2014-4-27 21:13
我更换了我自己的数据,矩阵应该不一样了啊
我感觉是矩阵相乘的时候不对, 可能是矩阵大小问题吧。   不妨明白地写个m*n的矩阵乘法算式, 看看是不是这里的问题。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-6 17:14:40
我也遇到同样的问题,不知道那位高手能帮我们解答一下,谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-7 09:54:42
xsdm = [x W*x(:,2:end)];
从错误提示上看,应该是矩阵相乘时,维数不匹配
矩阵相乘时,需满足 前一个矩阵的列数与后一个矩阵的行数相等,
对于上式,首先 x为n*(end -2+1),因此W应为 n列
因为不知道w的详细情况,建议将w transpose
xsdm = [x  W'*x(:,2:end)];

不一定管用,但希望对楼主有所帮助
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群