Betreff: Finde den Median der ListeDas ist keine Liste von Zahlen. Das ist eine Liste von 1x1-Matrizen. Was ist der Median einer Liste von Matrizen? Versuchen Sie stattdessen Folgendes:
Print(
Eval List(
Quantile(
0.5,
{-0.368200035870304, 0.049749270873994, 0.612391979268901, 1.15772787379131, -0.10485383375963}
)
)
);Betreff: Finde den Median der ListeHaben Sie Vorschläge zur Verwendung der Variablen in der Funktion? Meine phiNew-Variable ist eine Ausgabe mehrerer anderer Funktionen, und ich habe nicht wirklich die Möglichkeit, die Werte in der Quantile-Funktion anzugeben. Ich habe As List (phiNew) ausprobiert, erhalte aber immer noch die gleiche AusgabeBetreff: Median der Liste findenAha. Dieses Skript zeigt alle Schritte, die mit dem Ergebnis beginnen, das Sie von einer anderen Funktion erhalten haben. Die Schritte könnten durch Verschachtelungsfunktionen kombiniert werden, um den Code präziser zu gestalten, aber ich wollte, dass die Argumentation klar ist.
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)));Betreff: Median der Liste findenSie können die Konvertierung der Zahlen in Zeichen und zurück wie folgt vermeiden:
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];Die Vconcat- oder Concat-Funktionen verketten Matrizen vertikal oder horizontal. Die SubstituteInto-Funktion verarbeitet die Ausdrücke und konvertiert die geschweiften Klammern in einen VConcat- oder Concat-Operator. Wenn Sie sich das Ergebnis nach dem Ersatz vor dem Auswerten ansehen, werden Sie sehen, dass es immer noch ein Ausdruck ist:
Show( result );
/*:
result = [-0.368200035870304] |/ [0.049749270873994] |/ [0.612391979268901] |/ [1.15772787379131] |/ [-0.10485383375963];
Dabei ist | / der VConcat-Operator. Nach dem Eval ist es eine Matrix, wie im Kommentar gezeigt. Die Matrix ist ein Spalten- oder Zeilenvektor, je nachdem, welche Verkettungsrichtung verwendet wird.
Welchen Ansatz Sie auch wählen, hinterlassen Sie in Ihrer JSL einen Kommentar darüber, was er tut und warum!
Finde den Median der ListeIch möchte den Median meiner Liste bewerten:
{[-0.368200035870304], [0.049749270873994], [0.612391979268901], [1.15772787379131], [-0.10485383375963]}
mit folgendem Code:
print (Eval List (Quantile (0.5, phiNew)));Dabei ist phiNew der Name, in dem die Liste gespeichert ist. Die Ausgabe ergibt ".". Irgendeine Idee, warum ich den Median meiner Liste nicht richtig funktionieren lassen kann?