M 8.0.1,Windows 7.
一个调试问题.
有时当我启动M并打开我的笔记本(在我关闭之前已启用动态)时,我收到此消息

问题是,无论我点击等待还是禁用动态,消息都会不断回来.
我必须从Windows任务管理器终止进程本身(即Mathematica)以摆脱这个.
很明显,我的代码中似乎有一个动态错误.
我的问题是:M有没有办法告诉我哪些动态对象导致了这个问题?并且任何想法为什么告诉它禁用动态更新在这里没有帮助(因为我不断得到消息).
谢谢
鉴于此Mathematica代码,
Manipulate[Graphics[Line[{{0, 0}, p}], PlotRange -> 2], {{p, {1, 1}}, Locator}]
Run Code Online (Sandbox Code Playgroud)
如何在定位器上设置步距?如果可能的话,约束他们?
我确信这很简单,但我问Mathematica方程的特征多项式如下:
m={
{0, n, 0, c1},
{R, 0, 4, c2},
{0, R, 0, 0},
{0, 0, R, c4}
}
CharacteristicPolynomial[m,x]
Run Code Online (Sandbox Code Playgroud)
现在,我想将返回的多项式保存为函数,因此我可以稍后调用它(可能是类似的东西f[1]).唉,我一直无法弄清楚如何做到这一点.
我有以下问题.
我需要构建大量的定义(*),如
f[{1,0,0,0}] = 1
f[{0,1,0,0}] = 2
f[{0,0,1,0}] = 3
f[{0,0,0,1}] = 2
...
f[{2,3,1,2}] = 4
...
f[{n1,n2,n3,n4}] = some integer
...
Run Code Online (Sandbox Code Playgroud)
这只是一个例子.参数列表的长度不需要是4,但可以是任何值.我意识到当参数列表的长度增加时,每个值的查找会以指数复杂性减慢.也许这并不是那么奇怪,因为很明显原则上Mathematica需要存储多少定义的组合爆炸.
虽然,我预计Mathematica会很聪明,而且值提取应该是恒定的时间复杂度.显然它不是.
有没有办法加快查找时间?这可能与Mathematica内部处理符号定义查找的方式有关.它是否会在找到匹配项之前对列表进行短语?它似乎就是这样.
所有建议都高度赞赏.最好的问候佐兰
(*)我正在开发一个随机模拟软件,它可以生成系统的所有配置,并且需要存储每个配置发生的次数.在这个意义上,列表{n1,n2,...,nT}描述了系统的特定配置,表示存在类型1的n1个粒子,类型2的n2个粒子,......,类型为T的nT粒子.可以指数多个这样的配置.
下面的代码有效,但当我用ListPlot3D替换ListPointPlot3D时,它不起作用!
这有效:
ListPointPlot3D[Transpose[Table[{i,j, (150*(Sin[((i - 90)*2*3.14)/180]^2)* (Sin[((j - 45)*2*3.14)/180]^2)) - 150}, {i, 0, 270, 5}, {j, 0, 270, 5}]]]
Run Code Online (Sandbox Code Playgroud)
这不起作用:
ListPlot3D[Transpose[Table[{i,j, (150*(Sin[((i - 90)*2*3.14)/180]^2)* (Sin[((j - 45)*2*3.14)/180]^2)) - 150}, {i, 0, 270, 5}, {j, 0, 270, 5}]]]
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它不起作用?
ChartLabels -> Placed[{{Style["0", Bold, 18, FontFamily -> "Helvetica"]},
{Style["1", Bold, 18, FontFamily -> "Helvetica"]},
{Style["2", Bold, 18, FontFamily -> "Helvetica"]},
{Style["3", Bold, 18, FontFamily -> "Helvetica"]},
{Style["4", Bold, 18,
FontFamily -> "Helvetica"]}},
{{.1, .15}, {.3, .15}, {.5, .15}, {.7, .15},{.9, .15}}]
Run Code Online (Sandbox Code Playgroud)
首先,我很抱歉这对我自己来说甚至是一种尴尬,但我无法弄清楚如何在那里使用一个功能.
我怎么能让这更紧?
我尝试嵌套Switch失败了.
考虑到
dacount = {{0, 69}, {1, 122}, {2, 98}, {3, 122}, {4, 69}}
ListPlot[dacount, AxesOrigin -> {-1, 0},
PlotMarkers ->Automatic
PlotStyle-> Lighter[Red, #] & /@ Range[0.5, 1, 0.1],
Filling -> Axis, FillingStyle -> Opacity[0.8],
PlotRange -> {{-1, 4.5}, {0, 192}}]
Run Code Online (Sandbox Code Playgroud)

我希望每一点都能采取不同的红色.但是我不明白如何设置一个样式,我试图设置为不同的列表.
我有两个问题,
Q1.代码如下:
orgtable = Table[{i, node2 = i + 1, node3 = node2 + 6, node4 = node3 - 1,
node5 = i + 18, node6 = node5 + 1, node7 = node6 + 6,
node8 = node7 - 1}, {i, 1, 36}
];
modtable = Drop[orgtable, {6, 36, 6}];
finaltable = With[{n = 5, m = 10},Flatten[Partition[modtable, n, n + m, 1, {}], 1]]
Run Code Online (Sandbox Code Playgroud)
第一段代码给了我一个原始表,第二段给了我一个修改过的表,第三段给出了最终表.最终表的输出如下所示:
{{1, 2, 8, 7, 19, 20, 26, 25}, {2, 3, 9, 8, 20, 21, …Run Code Online (Sandbox Code Playgroud) 在我想要的Mathematica一些功能和记录解决方案,等等.f[x]Solve[f[x] == a, x]Subscript[x, 1, a], Subscript[x, 2, a]
如果,这是最好的方法
在Mathematica如果我有一个符号代数方程,我怎样才能得到它由特定术语相乘的因素是什么?
我的意思是说,作为一些计算的结果,我得到一个符号方程a x^2 + b x + c y,并说我对任何乘以x^2(即a在这里)感兴趣.如果应用于a x^2 + b x + c y退货,我应该写什么声明a.
(请注意,在示例中有一个b x术语,所以我不能使用衍生物来提取因子)
list ×2
3d ×1
coding-style ×1
counter ×1
debugging ×1
dynamic ×1
graphics ×1
manipulators ×1
map ×1
nested-lists ×1
plot ×1
point ×1