回复:找到列表的中位數那不是數字列表。這是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是保存列表的名稱。輸出結果為“。”。知道為什麼我無法使列表的中位數正常工作嗎?