全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1949 5
2010-03-23
请问下面程序中关于矩阵‘*’的计算为什么是错误的?
proc iml;
use insamp2;
read all into inopti;
b=inopti`;
c=b*inopti;
print b c;

程序执行显示操作符‘*’使用不当,请问我错在哪里?
多谢!!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-3-23 11:18:24
两个矩阵在只有在第一个矩阵的列数和第二个矩阵的行数相同时才能相乘。
如果想是对应元素相乘,用b#nopti
二维码

扫码加我 拉你入群

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

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

2010-3-23 11:18:42
可能是你计算的矩阵的行列数不相等
1# 根筋
二维码

扫码加我 拉你入群

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

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

2010-3-23 11:26:00
有没有可能是因为变量名不同引起的,矩阵转置前有6个变量,122个记录,转置后行、列名字变化了,再用‘*’它就不认识了。
二维码

扫码加我 拉你入群

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

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

2010-3-23 11:44:20
应该不会,行名和列名在数据展示的时候通过ROWNAME= 和COLNAME= 展现,跟矩阵的相乘无关。
二维码

扫码加我 拉你入群

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

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

2010-3-23 14:23:46
谢谢以上各位。原来是其中一个变量有两个缺失值,修改后就可执行了。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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