Abgekürzte Nachrichten in Mathematica sehen

8

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 )

%Vor%     
Yaroslav Bulatov 24.11.2010, 08:27
quelle

4 Antworten

10

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.

    
Simon 24.11.2010, 11:03
quelle
2

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.

    
Andrew Moylan 24.11.2010 09:01
quelle
2

Undokumentierte Funktion Internal'HandlerBlock ( aufgedeckt von Maxim Rytin) ist hier anwendbar:

%Vor%
  

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:

%Vor%

Natürlich ist die obige Version von $MessagePrePrint nur ein Entwurf, aber sie veranschaulicht die Hauptidee.

    
Alexey Popkov 17.08.2011 05:29
quelle
0

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 .

    
darioo 24.11.2010 08:44
quelle

Tags und Links