2

我一直在尝试使用数组和 DO 循环从比例中重命名一组变量,但没有成功。这似乎是一个非常简单的任务。关于我要去哪里错的任何建议?

ARRAY ATRSS (i) ATRSS_1  ATRSS_12 ATRSS_13 ATRSS_25 ATRSS_29 ATRSS_30 ATRSS_32 ATRSS_33 ATRSS_35 ATRSS_36;;
Array DIS (10) $ DIS1-DIS10; 

DO i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
    DIS (i) = ATRSS(i);
END;

我收到错误:不允许混合隐式和显式数组下标。

谢谢!

4

1 回答 1

2

array atrss atrss_1 ... ;

从第一行删除 (i) 就可以了。

我会注意到您本身并没有重命名-您不能以这种方式进行重命名-但它当然可以实现相同的目标。

您可以进一步改进它,尽管它可以正常工作:

array atrss atrss_1 atrss_12 atrss_13 atrss_25 atrss_29 atrss_30 atrss_32 atrss_33 atrss-35 atrss_36;
array dis(10);

do i = 1 to dim(atrss);
 dis[i] = atrss[i];
end;

如果您更改 atrss 中的元素数量,这会使其更加灵活。 do i = 1 to 10;也是可以接受的——无论如何,比拼出它们要容易得多。

于 2013-09-05T18:53:54.480 回答