全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Gauss专版
2222 3
2011-01-12
在GAUSS10的USER GUIDE里面,16-7页(pp.227)有一个图:Fig 16.1 structure tree for e1。如何定义这个复杂的tree?我的做法是:

struct example3 {matrix w; string array sa;}; //定义第三层的structure.
struct example3 e3;  //e3作为第三层的structure的instance.
struct example2 {matrix z; struct example3 e3;};//定义第2层的structure.
struct example2 e2; e2=reshape(e2,3,1);//将e2变成一个3*1的array。
struct example1 {matrix x; matrix y; string str; struct example2 e2;};//定义第1层的structure.
struct example1 e1;
e1.e2[1,1].e3=reshape(e1.e2[1,1].e3, 2,1); //将第一个e3变成2*1的array。该操作成功。
e1.e2[3,1].e3=reshape(e1.e2[3,1].e3, 2,1); //将第3个e3变成3*1的array。该操作失败。

问题出在最后一步。出现错误:(0) : error G0058 : Index out of range

各位GAUSS大师帮我看看,解答一下。先跪谢!

structure.jpg
二维码

扫码加我 拉你入群

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

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

全部回复
2011-1-12 20:38:41
指标在范围之外,再认真检查,是否应写3?
二维码

扫码加我 拉你入群

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

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

2011-1-13 18:36:00
2# xuehe
多谢斑竹回复。下面这一句:
e1.e2[3,1].e3=reshape(e1.e2[3,1].e3, 2,1);


确实需要改为
e1.e2[3,1].e3=reshape(e1.e2[3,1].e3, 3,1);


但是,不管是2,还是3,出现的错误是一样的。


最笨的方法估计是对三种e3分别定义三个structure,这样肯定没问题,但是运行效率肯定大大降低。我就想尝试一下是否可以通过一个e3结构来将图中的第三层结构定义出来。



二维码

扫码加我 拉你入群

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

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

2011-1-13 22:15:04
you well done!try your better!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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