当我使用Macro工具时出现此错误! ****宏ISsame的宏定义错误:缺少右括号 我检查了所有括号,这似乎是正确的,但我又遇到了同样的错误。你能帮我请吗?
set i/1*5/;
parameter
a(i) /1 1,2 0,3 1,4 0,5 0/
b(i) /1 0,2 1,3 1,4 0,5 0/
c(i) /1 1,2 0,3 1,4 0,5 0/
d(i) /1 1,2 0,3 1,4 0,5 1/
e(i) /1 1,2 1,3 1,4 0,5 1/;
*check two parameter are equal or not
parameter same;
$ontext
same = sum(i, abs(a(i)-b(i)));
if(same > 0,
display 'Parameter a is not equal to parameter b', same;);
$offtext
* Define Macro
$macro ISsame(a(j),b(j)) same = sum(i, abs(a(i)-b(i))); if(same > 0,display 'Parameter a is not equal to parameter b', same;);
* End of Macro definition
* Call Macro
ISsame(a(j),b(j) )
答案 0 :(得分:0)
问题出在ISSame
的参数列表中。这些参数应为“纯标识符”,在此处不应包含括号,因此应将$macro ISsame(a(j),b(j))
更改为$macro ISsame(a,b)
。而且,当您调用它时,我想您想完全传递a
和b
。因此,总的来说,您应该拥有:
...
* Define Macro
$macro ISsame(a,b) same = sum(i, abs(a(i)-b(i))); if(same > 0,display 'Parameter a is not equal to parameter b', same;);
* End of Macro definition
* Call Macro
ISsame(a,b)