给定坐标对
data = {{1, 0}, {2, 0}, {3, 1}, {4, 2}, {5, 1},
{6, 2}, {7, 3}, {8, 4}, {9, 3}, {10, 2}}
Run Code Online (Sandbox Code Playgroud)
我想提取山峰和山谷,因此:
{{4, 2}, {5, 1}, {8, 4}}
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是这种笨拙:
Cases[
Partition[data, 3, 1],
{{ta_, a_}, {tb_, b_}, {tc_, c_}} /; Or[a < b > c, a > b < c] :> {tb, b}
]
Run Code Online (Sandbox Code Playgroud)
您可以看到,通过使用三倍大小的数据集开始Partition.我认为可以使用Cases和PatternSequence提取这些信息,但这种尝试不起作用:
Cases[
data,
({___, PatternSequence[{_, a_}, {t_, b_}, {_, c_}], ___}
/; Or[a < b > c, a …Run Code Online (Sandbox Code Playgroud) 我试图让Mathematica近似一个积分,它是各种参数的函数.我不需要它非常精确 - 答案将是一小部分,5位数将是不错的,但我会满足于2.
问题是,主要有一个象征性的积分积分,我不能使用NIntegrate,因为它的符号.
F[x_, c_] := (1 - (1 - x)^c)^c;
a[n_, c_, x_] := F[a[n - 1, c, x], c];
a[0, c_, x_] = x;
MyIntegral[n_,c_] :=
NIntegrate[Integrate[(D[a[n,c,y],y]*y)/(1-a[n,c,x]),{y,x,1}],{x,0,1}]
Run Code Online (Sandbox Code Playgroud)
Mathematica在n 大于2且c大于3 时开始悬挂(通常为两者n并且c稍微高一些).
有没有重写这个表达式的技巧,以便更容易评估它?我已经打了不同的WorkingPrecision和AccuracyGoal和PrecisionGoal上外的选项NIntegrate,但没有帮助内积分,这就是问题的所在.事实上,对于更高的n和c,我甚至不能让Mathematica扩展内在导数,即
Expand[D[a[4,6,y],y]]
Run Code Online (Sandbox Code Playgroud)
挂起.
我正在为学生使用Mathematica 8.
如果有人有任何关于我如何让M近似这个的提示,我将不胜感激.
我试图使用Mathematica 7动态绘制矩阵中包含的数据.数据包含在其中,通过化学模型获得.
[year H He Li C ... C8H14+,Grain- ]
[0 0 0.03 0.009 1E-3 ... 0 ]
[100 .1 0.03 0.009 1E-3 ... 0 ]
[200 .2 0.03 0.009 1E-3 ... 0 ]
[300 .2 0.03 0.009 1E-3 ... 0 ]
[... ... ... ... ... ... ... ]
[1E6 .5 0.03 0.003 1E-8 ... 1E-25 ]
Run Code Online (Sandbox Code Playgroud)
事实是,矩阵维度是2001*1476(2000步和名称的第一行,1475个化合物+ 1年的列),非常沉重.我试图绘制任何具有浓度/年份图的化合物.这有效
Manipulate[
ListLogLogPlot[data[[All, {1, i}]], PlotLabel -> data[[1, i]] ],
{{i, 2, "Compound"}, 2, compounds, 1}
]
Run Code Online (Sandbox Code Playgroud)
其中数据是矩阵,并且化合物 …
如何在Mathematica中定义一个特殊的运算符,例如一种特殊类型的加法或乘法运算符?我过去做过,但我不记得我把代码放在哪里了.我尝试在两个矩阵上定义这个填充的小圆运算符:
A_\[FilledSmallCircle] B_ :=
Which[(MatrixQ[A] || VectorQ[A]) && (MatrixQ[B] || VectorQ[B]),
A.B, ! (MatrixQ[A] || VectorQ[A]) && (MatrixQ[B] || VectorQ[B]),
A@B, (MatrixQ[A] || VectorQ[A]) && ! (MatrixQ[B] || VectorQ[B]),
Transpose[B@Transpose[A]]];
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我究竟做错了什么?
我正在使用Mathematica并且有一组变量(A,B,C,D,...),其属性A =(蓝色,大,圆形),B =(红色,小,尖尖),等等.这些属性在变量之间可能很常见.查找共享共同属性(例如,小)的所有变量的最佳通用方法是什么?谢谢.
我创建了一个自定义调色板,并ActionMenu执行ClearAll["Global`*"].它执行所需的操作,但前端不会立即将颜色从黑色更新为蓝色(标准),因为它ClearAll["Global`*"]直接从笔记本单元格执行时发生(它仅在执行其他操作后更新).有没有办法启动刷新前端显示状态?
编辑:显然,当我从调色板加载包时(蓝色不会立即更新为黑色)也会发生同样的情况.
编码包的一个令人讨厌的事情是它们必须在一个单独的文件中.如果我们想要分发一个简单的自包含app(编码),我们需要提供两个文件:app"interface"和app包.
如果我将编码文件的所有内容放在一个字符串中,并将该字符串转换为一个InputStream,那么我将该包内容视为一个文件.
但Get,据我所知,这是唯一具有解码功能的操作(也被Needs使用),不适用于Streams.它只适用于真实文件.
有人能找到一种获取流的方法吗?
我有两个不同的Mathematica笔记本,具有相似但不同的功能.当它们是唯一开放的笔记本时,两者都可以正常工作.尽管我(自由)使用Clear []来清除相关变量,但是当其他笔记本打开时,其中一个始终失败.
称之为GlobalManipulate
ClearAll["Global`*"]
Clear["Global`*"]
Definition[linear]
linear[x_] := a x;
quad[x_] := a x^2;
functionList := {linear, quad};
Manipulate[
Plot[function[dummy], {dummy, -10, 10}],
{function, functionList}, {a, -10, 10},
LocalizeVariables -> False, TrackedSymbols -> All
]
Run Code Online (Sandbox Code Playgroud)
称之为LocalManipulate
Clear["Global`*"];
Manipulate[
{
linear := a x; quad := a x^2;
linear, quad, function,
Plot[ReleaseHold@function, {x, -10, 10}]
},
{function, {HoldForm@linear, HoldForm@quad}},
{a, -10, 10}, TrackedSymbols -> All
]
Run Code Online (Sandbox Code Playgroud)
当它自己运行时,GlobalManipulate按预期工作,我看到更新的图a更改.线性产生的定义Null.
当LocalManipulate打开,运行时,GlobalManipulate不再有效.即使它重新运行它的情节会出现一秒然后消失.
我使用Mathematica 8的本地副本和Mathematica 7的远程副本重现了这一点.
问题必须涉及功能linear[x_] …
我有一个由这个列表给出的一组点:
list1 = {{3, 1}, {1, 3}, {-1, 2}, {-1, -1}, {1, -2}};
我希望Mathematica从原点到上面的所有点绘制一条线.换句话说,从原点(0,0)到上述集合中的所有单个点绘制矢量.有没有办法做到这一点?到目前为止,我已经试过了Filling选项,PlotPoints以及VectorPlot,但他们似乎并不能够做我想做的.
我正在尝试使用Mathematica找到最小的跨越树,我想使用Combinatorica中的MinimumSpanningTree函数.我正在使用以下代码.
Needs["Combinatorica`"]
MinimumSpanningTree[GraphPlot[m]]
Run Code Online (Sandbox Code Playgroud)
其中m是矩阵.但是,MinimumSpanningTree变为红色并且不起作用.输出给出
out = MinimumSpanningTree[<maximum spanned tree>] //can't show the tree here
Run Code Online (Sandbox Code Playgroud)
如何使MinimumSpanningTree工作?它为什么变成红色?
definition ×1
drm ×1
dynamic ×1
function ×1
matrix ×1
operators ×1
plot ×1
properties ×1
variables ×1