相关疑难解决方法(0)

从列表中删除空列表的有效方法?

List[]List不同级别的表达式中出现的所有s中删除所有空对象的最有效方法是什么?List[]只有当它是另一个List自身的元素时才应该删除空.

wolfram-mathematica

16
推荐指数
1
解决办法
5613
查看次数

如何在不评估符号的情况下阻止符号?

假设我有一个Symbols 的名字列表:

f1 := Print["f1 is evaluated!"];
list = {"f1", "f2"};
Run Code Online (Sandbox Code Playgroud)

以明显的方式Block,这些Symbol小号导致他们的评价:

In[19]:= With[{list=Symbol/@list},Block[list,f1//ToString]]
During evaluation of In[19]:= f1 is evaluated!
During evaluation of In[19]:= f1 is evaluated!
Out[19]= Null
Run Code Online (Sandbox Code Playgroud)

但是如果没有评估我们就可以Block毫无问题

In[20]:= Block[{f1, f2}, f1 // ToString]
Out[20]= "f1"
Run Code Online (Sandbox Code Playgroud)

是否可以在Block不评估Symbols的情况下将此列表注入范围?

wolfram-mathematica

13
推荐指数
4
解决办法
1593
查看次数

列表列表中此ReplaceAll的正确语法是什么?

专家们的轻量级问题.我无法想象这个替换的正确语法.我有这个清单

Clear[a, b, c, d]
polesList = {{3, {a, b}}, {5, {c, d}}};
Run Code Online (Sandbox Code Playgroud)

它是一个列表的形式,子列表每个都有{order,{x,y}}的形式,我想生成这个形式的新列表(x + y)^ order

目前这就是我的工作,它有效:

((#[[2, 1]] + #[[2, 2]])^#[[1]]) & /@ polesList

(* ----->   {(a + b)^3, (c + d)^5}  *)  
Run Code Online (Sandbox Code Playgroud)

但我一直在努力学习使用,ReplaceAll因为它比纯函数更清晰,因为我可以更好地看到模式,如下所示:

Clear[a, b, c, d, n]
polesList = {{3, {a, b}}, {5, {c, d}}};
ReplaceAll[polesList, {n_, {x_, y_}} :> (x + y)^n]   (*I thought this will work*)
Run Code Online (Sandbox Code Playgroud)

我得到了奇怪的结果,这是

{(5 + c)^3, {(5 + d)^a, (5 + d)^b}}
Run Code Online (Sandbox Code Playgroud)

使用ReplaceAll而不是使用纯函数方法进行此替换的正确语法是什么?

谢谢

更新:

我发现使用Replace而不是 …

wolfram-mathematica

5
推荐指数
3
解决办法
460
查看次数

标签 统计

wolfram-mathematica ×3