楼主: sailingyf
1094 6

请教一个数组的问题 [推广有奖]

  • 1关注
  • 4粉丝

已卖:193份资源

副教授

90%

还不是VIP/贵宾

-

威望
0
论坛币
9720 个
通用积分
7.5613
学术水平
58 点
热心指数
58 点
信用等级
50 点
经验
5359 点
帖子
610
精华
0
在线时间
1378 小时
注册时间
2009-5-10
最后登录
2024-6-2

楼主
sailingyf 发表于 2012-12-4 16:03:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
问题:  数组中怎么使用max, sum等函数?

例如下面的例子
array level(24)  level_201001 - level_201012  level_201101 - level_201112;
array level_final(24) level_final_201001 - level_final_201012  level_final_201101 - level_final_201112;
array level_final2(24) level_final2_201001 - level_final2_201012  level_final2_201101 - level_final2_201112;

month_ind = floor(rand()*6);

do i = 1 to 12;
level_final(i) = max(of level(i+1) - level(i+12));
end;

do i = 1 to 12;
level_final2(i) = max(of level(month_ind) - level(i+12));
end;

上面的语句报错, 两个循环中的数据都是报:
ERROR 22-322: 语法错误, 期望下列之一:),','.

请教一下,这些写数组不可以吗? 应该怎样写呢?谢谢!



二维码

扫码加我 拉你入群

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

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

关键词:Level final array month floor

沙发
sailingyf 发表于 2012-12-4 16:30:22
顶起来,求大神解答!!!

藤椅
pobel 在职认证  发表于 2012-12-4 17:14:44
问题应该处在max()函数不支持那种格式。
可以改成:

do i = 1 to 12;
    do j=1 to 12;
                level_final(i) = max(level_final(i), level(i+j));
    end;
end;

do i = 1 to 12;
   do j=month_ind-i to 12;
       level_final2(i) = max(level_final2(i), level(i+j));
   end;
end;
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Imasasor + 12 + 1 + 1 -1 观点有启发

总评分: 论坛币 + 12  学术水平 + 1  热心指数 + 1  信用等级 -1   查看全部评分

和谐拯救危机

板凳
sailingyf 发表于 2012-12-5 10:22:42
pobel 发表于 2012-12-4 17:14
问题应该处在max()函数不支持那种格式。
可以改成:
谢谢答复.跟我最后的方法一样。
我最后也不得不用循环嵌套来稿定.

貌似sum, max这种都不支持我上面的写法。

报纸
jingju11 发表于 2012-12-5 13:08:11
sailingyf 发表于 2012-12-5 10:22
谢谢答复.跟我最后的方法一样。
我最后也不得不用循环嵌套来稿定.
如果你认为循环嵌套不好,而max(of array_{*})非常高效,那么可以借用一个临时数组:
array t[12] _temporary_;
do i =1 to dim(level);
  t[mod(i-1,12)+1] =level{i};
  if i >12 then level_final[mod(i-1,12)+1] =max(of t
{*});
end;
注意这个程序的循环次数=24,少于嵌套循环12×12=144.但是前提是max(of t
{*})是sas 优化的算法(很可能是)。如果谁有兴趣,试试试一个576(48*12)维度的数据,看看效率是否不同。
京剧

地板
jingju11 发表于 2012-12-5 13:38:43
jingju11 发表于 2012-12-5 13:08
如果你认为循环嵌套不好,而max(of array_{*})非常高效,那么可以借用一个临时数组:
array t[12] _tem ...
i had no way for the second one. Jingju

7
jingju11 发表于 2012-12-6 05:57:08
jingju11 发表于 2012-12-5 13:38
i had no way for the second one. Jingju
today I am not busy. I had two blogs to illustrate the solutions and the related efficiency.
http://blog.sina.com.cn/s/blog_a3a9263601018mh4.html
jingju

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 03:32