@hogi我不明白你描述的问题是什么。更完整的描述将不胜感激。
此外,一般来说,对于 JMP 中的潜在错误问题,最好的途径是将其发送给我们的技术支持团队(支持@jmp.com ) 以便他们可以对其进行调查。如果事实证明需要通过向 JMP 添加新功能来解决问题,那么将帖子添加到愿望清单是合适的。
鉴于有解决方案,将把它从我们的愿望清单活动项目中移除。
@朱利安提供了下面说明问题的脚本。我们将调查此错误。
//control condition
expression1 = Expr( Sine( Log( Round ( 2.5 , 0 ) ) ) );
Eval( expression1 );
Show( NameExpr(expression1));
//Succeeds, using additional parentheses to help JMP know these are functions
expression2 = Expr( __func1__(__func2__( __func3__( 2.5 , 0 ) ) ) );
Substitute Into( expression2,
Expr(__func1__),Expr(Sine()),
Expr(__func2__),Expr(Log()),
Expr(__func3__),Expr(Round()),
);
Show( NameExpr(expression2));
Eval( expression2 );
//Also Succeeds, becuase only 1 function doesn't have ()
expression3 = Expr( __func1__(__func2__( __func3__( 2.5 , 0 ) ) ) );
Substitute Into( expression3,
Expr(__func1__),Expr(Sine),
Expr(__func2__),Expr(Log()),
Expr(__func3__),Expr(Round()),
);
Show( NameExpr(expression3));
Eval( expression3 );
//Fails, even though expression looks correct from show
expression4 = Expr( __func1__(__func2__( __func3__( 2.5 , 0 ) ) ) );
Substitute Into( expression4,
Expr(__func1__),Expr(Sine),
Expr(__func2__),Expr(Log),
Expr(__func3__),Expr(Round),
);
Show( NameExpr(expression4));
Eval( expression4 );
是的,似乎一旦二or more functions in the substitution are given without brackets, expression cannot be evaluated anymore.
如果一个接一个地应用替换,也会弹出错误消息,例如https://community.jmp.com/t5/Discussions/Col-Median-what-s-wrong/mp/573778#M78278
另一方面:很酷的 JMP能够替代功能。
另外:“用括号编写所有函数”的很好的解决方法:)
很酷的新功能
可以帮助很多用户!
删除一个“bug”
☑ 很高兴拥有
无人需要它
如果在 JSL 代码中同时或顺序替换多个项目,则Substitute会出现错误。
JMP 抱怨代码不正确。
该代码在通过parse(char(my code))提供后工作。如果保存并重新打开文件,它也可以正常工作:
https://community.jmp.com/t5/Discussions/Col-Median-what-s-wrong/mp/573778#M78278
真的很奇怪。