我想创建一个函数My`Print[args__]来打印我传递它的符号的名称及其值.问题是在传递符号之前,会对My`Print它们进行评估.所以My`Print永远不要看到符号名称.
一个解决方案是围绕每一个我传递给说法My`Print有Unevaluated[],不过这看起来凌乱.有没有一种定义MACRO的方法,当我输入时My`Print[args__],Mathematica内核会看到My`Print[Unevaluated /@ args__]?
我想以数字方式整合以下内容:

哪里

和a,b并且?是常量,为简单起见,都可以设置为1.
Matlab使用dblquad,Mathematica使用NIntegrate都不能处理分母创建的奇点.由于它是双积分,我无法指定Mathematica中奇点的位置.
我确信它不是无限的,因为这个积分是基于扰动理论而没有
之前已被发现(只是不是我,所以我不知道它是如何完成的).
有任何想法吗?
我想在Manipulate结构中包含一些区域图,但渲染几乎非常慢.代码是
ClearAll[regions, rplot]
r:regions[n_Integer, o_Integer] := r = Apply[And,
Subsets[Table[(#1 - Cos[t])^2 + (#2 - Sin[t])^2 <= 1, {t, 2 Pi/n,
2 Pi, 2 Pi/n}], {o}], {1}] &
r:rplot[n_Integer, o_Integer] := r = Show[{RegionPlot[
Evaluate[regions[n, o][x, y]], {x, -2, 2}, {y, -2, 2},
PlotRange -> {{-2, 2}, {-2, 2}}, PlotRangePadding -> .1,
Frame -> False, PlotPoints -> 100],
Graphics[Table[Circle[{Cos[t], Sin[t]}, 1], {t, 2 Pi/n, 2 Pi, 2 Pi/n}]]}]
Run Code Online (Sandbox Code Playgroud)
这产生的图形就像
GraphicsGrid[{{rplot[3, 2], rplot[5, 3]}, {rplot[7, 2], rplot[4, 1]}}]
Run Code Online (Sandbox Code Playgroud)

以上大约需要40秒才能在我的计算机上进行计算和渲染.任何人都可以建议一种方法来更快地获得类似的质量图形? …
当数学计算一个细胞,它给人的输入单元和输出单元的CellLabel小号In[$Line]:=和Out[$Line]=其中$线是从每输入计算递增的计数器.
如果您输入类似TraditionalForm[expr]或TeXForm[expr](或任何其他*表格$OutputForms)的内容,则表单的名称也会添加到输出单元格的标签中.例如Out[1]//TraditionalForm=.
我找不到任何自定义这些标签的方法.
可以在"首选项"对话框中禁用它们.
它们似乎不在输入和输出单元格的StyleSheet选项中 - 尽管有与CellLabel行为相关的选项.
也不在Notebook选项中 - 尽管在Option Inspector中:Notebook Options> Evaluation Options> EvaluationCompletionAction可以通过添加TimeStamp来修改CellLabel.它还可以在StatusArea中显示Timing,一旦打印出其他内容,它就会被删除.
也不是任何init.m类型的 配置文件.
那么,有谁知道这些CellLabel的生成位置?
特别是,我有兴趣将TimingCellLabel 添加到输出单元格.
我一直在$NewSymbol努力寻找能够回答这个问题的东西.文档说
在实际创建符号之前应用$ NewSymbol.如果$ NewSymbol的操作导致创建符号(可能在不同的上下文中),则创建的符号将是使用的符号.
所以我尝试自动将一个特定的新符号移动到一个测试上下文中,该测试上下文应该阻止它在Global`*上下文中的创建,但是符号在两个上下文中都被创建.
In[1]:= Remove["Global`*"]
In[2]:= $NewSymbol=(Print[#1," : ",#2];
If[#1==="aLongTestSymbolName"&==="Global`",
Symbol["TestContext`"<>#1]])&;
In[3]:= x
During evaluation of In[3]:= x : Global`
Out[3]= x
In[4]:= aLongTestSymbolName
During evaluation of In[4]:= aLongTestSymbolName : Global`
During evaluation of In[4]:= aLongTestSymbolName : TestContext`
Out[4]= aLongTestSymbolName
In[5]:= Names["Global`*"]
Out[5]= {aLongTestSymbolName,x}
In[6]:= Names["TestContext`*"]
Out[6]= {TestContext`aLongTestSymbolName}
Run Code Online (Sandbox Code Playgroud)
我认为"aLongTestSymbolName"不应该在这种Global`背景下.任何人都可以看到我做错了什么或者我是否误解了文档?
注意:在两个上下文中创建符号不是上述链接到问题中自动突出显示的选项.我们的想法是保留某些符号名称,例如"x"~~___变量和"f"~~___函数,然后使用字符串模式$NewSymbol将符号移动到适当的突出显示的上下文.
假设您有一个列表列表,并且您希望仅删除长度为零的列表,例如:
a={{...},{...},{...},...}
DeleteCases[a, ?]
Run Code Online (Sandbox Code Playgroud)
应该?是什么?
知道如何让这个工作吗?
y = {}; Table[Button[x, AppendTo[y, Evaluate[x]]], {x, 5}]
Run Code Online (Sandbox Code Playgroud)
结果:单击[ 1],单击[ 2],获取{6,6}
我轻视实际的任务,但我们的目标是建立一个内部的按钮做什么Map或Table或ParallelTable.
请帮忙!
编辑想
出来...... Evaluate只在第一级工作.在这里,它太深了.所以我用过ReplaceRule:
Remove[sub]; y = {}; Table[Button[x, AppendTo[y, sub]] /. sub -> x, {x, 5}]
Run Code Online (Sandbox Code Playgroud) 说我有一个清单 Rules
rules = {a -> b, c -> d};
Run Code Online (Sandbox Code Playgroud)
我在整个笔记本中使用它.然后,在某一点上,在表达式中进行任何其他评估之前,希望应用规则是有意义的.通常,如果你想要这样的东西,你会使用
In[2]:= With[{a=b,c=d}, expr[a,b,c,d]]
Out[2]= expr[b, b, d, d]
Run Code Online (Sandbox Code Playgroud)
我怎样才能把rules它插入到第一个参数中With?
无论一些解决方案未能尽我一直在寻找-但我应该强调了这一点多一点.见上面的粗体部分.
例如,让我们来看看
rules = {a -> {1, 2}, c -> 1};
Run Code Online (Sandbox Code Playgroud)
如果我使用这些vaules With,我会得到
In[10]:= With[{a={1,2},c=1}, Head/@{a,c}]
Out[10]= {List,Integer}
Run Code Online (Sandbox Code Playgroud)
某些版本的WithRules收益率
In[11]:= WithRules[rules, Head/@{a,c}]
Out[11]= {Symbol, Symbol}
Run Code Online (Sandbox Code Playgroud)
(实际上,我没有注意到Andrew的答案有属性HoldRest- 所以它就像我想要的那样.)
在今天早上回答一个物理论坛问题时,我遇到了非常糟糕的表现,DifferenceRoot并且RecurrenceTable通过天真地采用指数生成函数的导数来计算表达式.极少量的挖掘表明DifferenceRoot并且RecurrenceTable 不会简化表达式.
例如,查看以下输出RecurrenceTable以及如何通过Expand结果简化它:
In[1]:= RecurrenceTable[f[n] == a f[n - 1] + (a - 1) f[n - 2] &&
f[0] == 0 && f[1] == 1,
f, {n, 6}]
% // Expand
Out[1]= {0, 1, a, -1+a+a^2, -a+a^2+a (-1+a+a^2), 1-a-a^2+a (-1+a+a^2)+a (-a+a^2+a (-1+a+a^2))}
Out[2]= {0, 1, a, -1+a+a^2, -2 a+2 a^2+a^3, 1-2 a-2 a^2+3 a^3+a^4}
Run Code Online (Sandbox Code Playgroud)
这很快失控,因为第20次迭代的叶数(使用计算 DifferenceRoot)显示:
dr[k_] := DifferenceRoot[Function[{f, n},
{f[n] == a f[n - …Run Code Online (Sandbox Code Playgroud) 给出方程式
eqn1 = 5 x1 + 2 x2 + 3 x3 == 8
eqn2 = 4 x1 + 7 x2 + 9 x3 == 5
eqn3 = 6 x1 + x2 + 9 x3 == 2
Run Code Online (Sandbox Code Playgroud)
如何提取系数x1, x2, x3以形成矩阵?
我试过使用,CoefficientArrays但输出是作为一个SparseArray.