Ist es möglich, die Vollversion von Message
zu sehen, die abgeschnitten wurde? IE, ich sehe etwas in der Art von 0.105309,0.394682,<<20>>,<<20>>,<<20>>,0.394631
im Fenster Messages
. Ich denke, <<20>>
steht für ausgelassene Teile, wie bekomme ich das Ganze?
Die aufgerufene Funktion ist FindMaximum bei einem Problem mit 50 Variablen.
Aktualisierung: Simons Antwort scheint für allgemeine Nachrichten zu funktionieren, und ich habe einen Ansatz gefunden, der spezifisch für die Erfassung der FindMaximum-Nachricht "keine echte Zahl" ist.
Um den Punkt zu erhalten, der dazu führt, dass FindMaximum mit der Meldung "Keine echte Zahl" fehlschlägt, können Sie Folgendes tun ( Message
neu zu definieren ist der einzige Ansatz, den ich finden konnte, da der Punkt nicht an EvaluationMonitor
oder übergeben wird) StepMonitor
)
Ich bin mir nicht sicher, ob Sie eine lange Nachricht wiederherstellen können, die bereits generiert wurde. Als $MessageList
und Message[]
speichern nur die Nachrichtennamen, nicht die an sie übergebenen Argumente.
Um zu verhindern, dass Short[]
automatisch auf Nachrichten angewendet wird, können Sie Unset[$MessagePrePrint]
. Der Standardwert ist Automatic
- was auch immer das beinhaltet.
Anstatt lange Nachrichten zu drucken, ist es besser, etwas wie
zu verwenden %Vor% Dies wird die Nachricht als normal ausgeben, außer die ByteCount
ist zu groß (& gt; 65536) In diesem Fall wird es zwei Nachrichten ausdrucken: Die erste informiert Sie, dass eine große Nachricht erzeugt wurde und gibt Ihnen die Datei wo es wurde gespeichert. Die zweite ist die verkürzte Version der vollständigen Nachricht.
Ich bin gerade nicht vor dem richtigen Computer, also kann ich es nicht sicher testen ... Aber ich denke, Sie können das Verhalten der Nachrichtenbehandlung vollständig anpassen, etwa mit:
%Vor%Zum Beispiel könnten Sie
verwenden %Vor%Noch einmal, nicht gerade vor Mathematica. Bitte zögern Sie nicht, diese Antwort zu bearbeiten.
Undokumentierte Funktion Internal'HandlerBlock
( aufgedeckt von Maxim Rytin) ist hier anwendbar:
Ein anderer Handler-Typ ist "MessageTextFilter". "Message" wird aufgerufen jede generierte Nachricht und übergibt ein Argument des Formulars Hold [..., ...] zur Handler-Funktion, wobei das zweite Element auf False gesetzt ist beruhigte Nachrichten. "MessageTextFilter" wird für Nachrichten aufgerufen, die wird tatsächlich gedruckt und ruft die Funktion mit drei Argumenten auf.
Maxim Rytin
Eine andere Möglichkeit besteht darin, $MessagePrePrint
so zu ändern, dass Nachrichten mit Inline-Zellen mit abgeschnittenen Argumenten gedruckt werden, die bei der Auswertung zu vollständigen Argumenten erweitert werden können. Es kann mit Interpretation
gemacht werden:
Natürlich ist die obige Version von $MessagePrePrint
nur ein Entwurf, aber sie veranschaulicht die Hauptidee.
Zitieren diesen Link :
"Wenn Sie symbolische Berechnungen durchführen, ist es ziemlich einfach, mit extrem komplizierten Ausdrücken zu enden. Oft wollen Sie nicht einmal das vollständige Ergebnis einer Berechnung sehen."
Sie können Ihre Anzeige mit Short
steuern.
Short[%, n]
zeigt n
-Zeilen Ihres vorherigen Ergebnisses an, das könnte also das sein, was Sie brauchen.
Weitere Informationen hier .
Tags und Links wolfram-mathematica