gpt4 book ai didi

wolfram-mathematica - 在 Mathematica 中查看截断的消息

转载 作者:行者123 更新时间:2023-12-04 05:58:39 25 4
gpt4 key购买 nike

是否可以看到完整版的 Message被截断了? IE,我看到类似 0.105309,0.394682,<<20>>,<<20>>,<<20>>,0.394631 的内容在 Messages window 。我猜 <<20>>代表省略的部分,我如何得到整个事情?

在一个有 50 个变量的问题上调用的函数是 FindMaximum。

更新:
西蒙的回答似乎适用于一般消息,我还发现了一种专门用于捕获 FindMaximum“非实数”消息的方法。

要获得导致 FindMaximum 失败并显示“非实数”消息的点,您可以执行以下操作(重新定义 Message 是我能找到的唯一方法,因为该点不会传递给 EvaluationMonitorStepMonitor )

Unprotect[Message];
Message[FindMaximum::"nrnum", args___] := (captured = {args};
Print["Captured FindMaximum::nrnum at ", First[{args}]]);
{badvals, badvars, badobj} = ReleaseHold[captured];

最佳答案

我不确定您是否可以恢复已生成的长消息。如 $MessageListMessage[]只存储消息名称,而不是传递给它们的参数。

停止Short[]从自动应用于邮件,您可以 Unset[$MessagePrePrint] .它的默认值是 Automatic ——无论这意味着什么。

与其一直打印长消息,不如使用类似的东西

General::longmsg="A long message (`1`) was produced. The full message has been saved in `2`";
$MessagePrePrint=With[{bc=ByteCount[#]},If[bc>65536,
With[{fn=FileNameJoin[{$HomeDirectory,StringJoin["MmaMsg",ToString/@DateList[]]}]},
Put[#,fn];Message[General::longmsg,bc,Row[{fn}]];Short[Shallow[#],1]],
#]]&;

这将正常打印消息,除非 ByteCount太大 (> 65536) 在这种情况下,它将打印出两条消息:第一条通知您生成了一条大消息,并为您提供了保存该消息的文件。第二个是完整消息的截断版本。

关于wolfram-mathematica - 在 Mathematica 中查看截断的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com