相关疑难解决方法(0)

我怎样才能找到带有Mathematica的Waldo?

周末这让我很烦恼:什么是解决那些Waldo的好方法 [ 'Wally'在北美之外]使用Mathematica(图像处理和其他功能)进行拼图?

这是我到目前为止的功能,它通过调暗一些非红色来减少视觉复杂度:

whereIsWaldo[url_] := Module[{waldo, waldo2, waldoMask},
    waldo = Import[url];
    waldo2 = Image[ImageData[
        waldo] /. {{r_, g_, b_} /;
          Not[r > .7 && g < .3 && b < .3] :> {0, 0,
          0}, {r_, g_, b_} /; (r > .7 && g < .3 && b < .3) :> {1, 1,
          1}}];
    waldoMask = Closing[waldo2, 4];
    ImageCompose[waldo, {waldoMask, .5}]
]
Run Code Online (Sandbox Code Playgroud)

以及这个"有效"的网址示例:

whereIsWaldo["http://www.findwaldo.com/fankit/graphics/IntlManOfLiterature/Scenes/DepartmentStore.jpg"]
Run Code Online (Sandbox Code Playgroud)

(Waldo是收银台):

Mathematica图形

wolfram-mathematica image-processing

1538
推荐指数
5
解决办法
25万
查看次数

使用Mathematica构建演示文稿和文档

我用Mma主要解决相对较小的问题.

我也想开始使用它来准备我的演示文稿和文档,但是我很难从嵌入式帮助中学习如何做到这一点,我想其他地方可能会提供一些好的资源.

你知道任何有用的指针(书籍,论文,视频......)吗?

你有一个"技巧袋"在这里张贴?

编辑

到目前为止,这个问题得到了两个答案(@ mzabsky和Mr.Wizard's)虽然两者都很有用,但也许我的担忧更为基础.所以我张贴的一个例子样的事情我不能做(或了解如何辨别别人是怎么做他们).

我从The Mathematica Journal(以下图片左侧的笔记本 - 点击图片查看完整尺寸)中选择了以下示例:

在此输入图像描述

所以,有些问题,只是为了弄清楚我的麻烦:

1)我将文本复制到我右边的.nb,用相同的样式(文本)格式化,但外观不同,所以我猜风格定义不同.如何将样式定义从一个.nb复制到另一个?

2)文本块下面的表格没有附加样式.它是如何格式化的?背景颜色在哪里定义?

我想要指出关于这些问题的阅读(或要观看的视频,或其他什么).我不想让你在这里写下一本关于Mathematica格式的书!

答案中发布的链接摘要

wolfram-mathematica

40
推荐指数
2
解决办法
1万
查看次数

Mathematica中的树数据结构

我主要使用mathematica作为数学工作台,并编写相对较小的ad-hoc程序.然而,我正在设计一个我打算在Mathematica中编程的系统.我需要将数据存储在树中,并搜索和遍历树.虽然我知道如何实现树,但我更喜欢标准的,经过测试的代码.我在Mathematica用户维基上查看了基本数据结构的类型.我没有找到,尽管Mathematica文档中有一个小例子.

现在问我的问题:

  1. 是否有可用的数据结构(开源)包?

  2. 您在数据结构方面使用了什么方法?逐步开发自己的util包?

(这不是一个问题,只是一个评论.也许......缺乏(大量可用的)开源软件包是Mathematica没有应有的动力的原因.我害怕鸡/蛋问题.)

wolfram-mathematica

39
推荐指数
2
解决办法
9412
查看次数

Mathematica中用于为数学书制作图形的简单编程技巧/技巧?

我试着用它.这对于一些Plots来说真的很不错,但是当它以三角形为例时我发现它非常复杂.我想出了如何绘制三角形,但如何添加角度标记,那些曲线?

因为我刚开始从事这项工作,写一本书,任何人都可以推荐我,这是获得好看图形的最佳方法,例如如下图所示.哪种程序最好用. 在此输入图像描述

感谢您提出任何建议和意见.

wolfram-mathematica

36
推荐指数
6
解决办法
2859
查看次数

自定义Mathematica快捷方式

有没有我可以查看/更改全局快捷方式选项的地方,如Command+ 9(转换为输入样式)?

特别是,我需要一种更快的方法来创建项目符号列表.它是Cell上下文菜单中的"Item"样式,它没有自己的快捷方式.

wolfram-mathematica

31
推荐指数
2
解决办法
1万
查看次数

在Mathematica中实现四叉树

我在Mathematica中实现了一个四叉树.我不熟悉像Mathematica这样的函数式编程语言,我想知道我是否可以通过更好地使用模式来改进它或使其更紧凑.

(我知道我可以通过修剪未使用的节点来优化树,并且可能有更好的数据结构,如用于空间分解的kd树.)

此外,每次添加新点时,我仍然不满意复制整个树/表达式的想法.但我的理解是,对整个表达式进行操作而不修改部分是函数式编程方式.我对这方面的任何澄清表示感谢.

MV

代码

ClearAll[qtMakeNode, qtInsert, insideBox, qtDraw, splitBox, isLeaf, qtbb, qtpt];

(* create a quadtree node *)
qtMakeNode[{{xmin_,ymin_}, {xmax_, ymax_}}] := 
{{}, {}, {}, {}, qtbb[{xmin, ymin}, {xmax, ymax}], {}}

(* is pt inside box? *)
insideBox[pt_, bb_] := If[(pt[[1]] <= bb[[2, 1]]) && (pt[[1]] >= bb[[1, 1]]) &&
  (pt[[2]] <= bb[[2, 2]]) && (pt[[2]] >= bb[[1, 2]]),
  True, False]

(* split bounding box into 4 children *)
splitBox[{{xmin_,ymin_}, {xmax_, ymax_}}] := {
 {{xmin, (ymin+ymax)/2}, {(xmin+xmax)/2, …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica quadtree

30
推荐指数
2
解决办法
3370
查看次数

一个REPL绑定他们所有?

我想知道是否有一个不是特定于语言的REPL.我花了很多时间浸泡在REPL中(主要用于Clojure,Scala和Haskell),而捆绑的这些都让我或多或少地感到沮丧.似乎REPL的工作非常通用,因为它们:

  • 阅读:接受用户输入
  • 评估:将输入传递给某个运行时进行处理
  • 打印:将结果打印到屏幕上
  • 循环:等待下一个用户输入

我不明白为什么不应该有一些与语言无关的REPL,但我一直无法找到这样的东西.在我理想的REPL中我想要的一些东西:

  • Linux命令行应用程序
  • 通过向上箭头可访问无限历史记录
  • 能够在重新运行之前编辑以前的命令
  • 像bash这样的历史搜索的ctrl-r
  • 一个REPL中有多个会话,因此我可以轻松地在它们之间切换

而且更乐观

  • 语法突出显示,上下文感知代码完成

这存在吗?

language-agnostic haskell scala clojure read-eval-print-loop

27
推荐指数
2
解决办法
1871
查看次数

如何从Mathematica访问StackOverflow API

前几天我想知道StackOverflow是否有我可以从Mathematica访问的API,显然它确实:"保存绘图注释"

从StackOverflow获取数据到Mathematica的最佳方法是什么?Sjoerd利用这些信息制作了一个情节.我有兴趣将SO相关的通知添加到我保存在笔记本中的停靠单元格中,因此我可以在不离开Mathematica的情况下判断何时有更新或响应.

wolfram-mathematica

26
推荐指数
2
解决办法
1703
查看次数

在Mathematica中使用数组和表函数.哪个是最好的

我在mathematica中主要是一个Table函数用户.但是我注意到在几个使用Array而不是Table来表示相同结果的例子中,它运行速度明显更快,尤其是随着表的维度变大.

所以我的问题是:当执行速度是主要问题时,何时最适合使用表?

是什么解释了这种差异

我的猜测是因为Arrays假设列表中的项目之间存在功能关系,它会更有效地存储它们,因此使用更少的内存,从而便于存储和后续处理?

它是怎么回事?

arrays wolfram-mathematica

23
推荐指数
3
解决办法
1万
查看次数

Mathematica:如何清除符号的缓存,即Unset pattern-free DownValues

我是一个糟糕的人:有时,当没有人在观看时,我会缓存结果而不包括完整的上下文,如下所示:

f[x_]:=f[x]=x+a;
a=2; f[1];
DownValues[f]

Out[2]= {HoldPattern[f[1]]:>3,HoldPattern[f[x_]]:>(f[x]=x+a)}
Run Code Online (Sandbox Code Playgroud)

这会导致可怕的细微错误,更重要的是,当我更改上下文时需要清除缓存.清除缓存的一种方法是完全Clear符号并重复定义,但这不是一个真正的解决方案.

我真正想要的是一种清除与符号相关的所有无模式DownValues的方法.
为清楚起见,我将把我目前的解决方案作为答案包括在内,但如果两个方面都失败了

  • 它只使用全数字参数清除DownValues
  • 出于美学原因,我想避免使用Block抓住DownValues.

关于如何改进的任何想法ClearCache

wolfram-mathematica

22
推荐指数
3
解决办法
1640
查看次数