回复:找到列表的中位数那不是数字列表。这是1x1矩阵的列表。矩阵列表的中位数是多少?请尝试这种方式:
Print(
Eval List(
Quantile(
0.5,
{-0.368200035870304, 0.049749270873994, 0.612391979268901, 1.15772787379131, -0.10485383375963}
)
)
);回复:找到列表的中位数您对如何在函数中使用变量有什么建议?我的phiNew变量是其他几个函数的输出,我实际上没有选择指定Quantile函数中的值的选项。我已经尝试过As List(phiNew),但是我仍然得到相同的输出回复:找到列表的中位数我知道了。该脚本显示了所有步骤,从另一个函数返回的结果开始。可以通过嵌套函数来组合这些步骤,以使代码更简洁,但是我希望弄清楚原因。
Names Default to Here( 1 );
result = {[-0.368200035870304], [0.049749270873994], [0.612391979268901], [1.15772787379131], [-0.10485383375963]};
result = Char( result );
result = Substitute( result,
"[", "",
"]", ""
);
result = Parse( result );
print(Eval List (Quantile (0.5, result)));回复:找到列表的中位数您可以避免像这样将数字转换为字符并返回:
result = {[-0.368200035870304], [0.049749270873994], [0.612391979268901], [1.15772787379131], [-0.10485383375963]};
Substitute Into( result, Expr( {} ), Expr( V Concat() ) ); // make a col vector
result = Eval( result );
Show( result );
//result = [-0.368200035870304, 0.049749270873994, 0.612391979268901, 1.15772787379131, -0.10485383375963];
// or
result = {[-0.368200035870304], [0.049749270873994], [0.612391979268901], [1.15772787379131], [-0.10485383375963]};
Substitute Into( result, Expr( {} ), Expr( Concat() ) ); // make a row vector
result = Eval( result );
Show( result );
// result = [-0.368200035870304 0.049749270873994 0.612391979268901 1.15772787379131 -0.10485383375963];Vconcat或Concat函数可垂直或水平连接矩阵。SubstituteInto函数对表达式进行运算,将花括号转换为VConcat或Concat运算符。如果在替换之后,在eval之前查看结果,您会发现它仍然是一个表达式:
Show( result );
/*:
result = [-0.368200035870304] |/ [0.049749270873994] |/ [0.612391979268901] |/ [1.15772787379131] |/ [-0.10485383375963];
| /是VConcat运算符。在Eval之后,它是一个矩阵,如注释中所示。矩阵将是col或row向量,具体取决于使用的连接方向。
无论采用哪种方法,请在JSL中留下有关其作用和原因的评论!
查找列表的中位数我正在评估清单的中位数:
{[-0.368200035870304],[0.049749270873994],[0.612391979268901],[1.15772787379131],[-0.10485383375963]}
使用以下代码:
打印(评估清单(分位数(0.5,phiNew)));其中phiNew是保存列表的名称。输出结果为“。”。知道为什么我无法使列表的中位数正常工作吗?