全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5555 6
2009-06-21
运行程序时出现这个错误“ERROR: (execution) Matrix has not been set to a value.”,请问是什么原因呢?谢谢大家了。
代码如下:
proc iml;
use dataset1;
read all into data;
show names;
print data;
start maxFunc(X) global(data);
sum=0;
do i=1 to 10;
U[1]=X[1]*data[i,2]+X[2]*data[i,3];
U[2]=X[1]*data[i,4]+X[2]*data[i,5];
U=U[1]*data[i,6]+U[2]*data[i,7]+X[3]*data[i,8];
sum=sum- log(exp(U[1]-U)+exp(U[2]-U)+exp(X[3]-U));
end;
return(sum);
finish maxFunc;
optn={1 2};
X=J(1,4,0);
call nlpcg(rc,xres,"maxFunc",X,optn);
run;
quit;
二维码

扫码加我 拉你入群

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

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

全部回复
2009-6-22 00:12:46
call nlpcg(rc,xres,"maxFunc",X,optn);该为call nlpcg(xres,rc,"maxFunc",X,optn);
对于这个问题我非常关注,请你把结果及时告诉我谢谢
二维码

扫码加我 拉你入群

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

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

2009-6-22 09:32:39
2# 爱萌
报一样的错误啊,如下:
283
284  proc iml;
NOTE: IML Ready
285  use dataset1;
286  read all into data;
287  show names;
288  print data;
289  start maxFunc(X) global(data);
290  sum=0;
291  do i=1 to 10;
292      U[1]=X[1]*data[i,2]+X[2]*data[i,3];
293      U[2]=X[1]*data[i,4]+X[2]*data[i,5];
294      U=U[1]*data[i,6]+U[2]*data[i,7]+X[3]*data[i,8];
295      sum=sum- log(exp(U[1]-U)+exp(U[2]-U)+exp(X[3]-U));
296      end;
297      return(sum);
298      finish maxFunc;
NOTE: Module MAXFUNC defined.
299
300      optn={1 2};
301      X=J(1,4,0);
302      call nlpcg(xres,rc,"maxFunc",X,optn);
ERROR: (execution) Matrix has not been set to a value.
operation : [ at line 292 column 6
operands  : U, *LIT1004, _TEM1007
U      0 row       0 col     (type ?, size 0)

*LIT1004      1 row       1 col     (numeric)
         1
_TEM1007      1 row       1 col     (numeric)
         0
statement : ASSIGN at line 292 column 5
traceback : module MAXFUNC at line 292 column 5
ERROR: (execution) Matrix has not been set to a value.
operation : NLPCG at line 302 column 5
operands  : *LIT1027, X, OPTN
*LIT1027      1 row       1 col     (character, size 7)
maxFunc
X      1 row       4 cols    (numeric)
         0         0         0         0
OPTN      1 row       2 cols    (numeric)
         1         2
statement : CALL at line 302 column 5
303      run;
NOTE: Module MAIN is undefined in IML; cannot be RUN.
304      quit;
现在不明白怎么会读不到数据的?
二维码

扫码加我 拉你入群

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

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

2009-6-22 11:37:47
请问大家,为什么会出现这种错误呢?ERROR: (execution) Matrix has not been set to a value.谢谢。
二维码

扫码加我 拉你入群

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

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

2009-6-22 12:13:06
我知道了,你的X设置把他们X=J(1,4,0.00001)
二维码

扫码加我 拉你入群

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

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

2009-6-22 16:54:08
谢谢爱萌的热心回帖。
我做了一下修改后,程序跑成功了。
对U在maxFunc里面定义,U=J(1,3,0)
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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