3

我正在尝试在 Octave 中完成所有基于 MatLab 的家庭作业 - MatLab 的开源表示。

但是,我在绘制图表时遇到问题,我认为这是一个简单的链接问题。我正在运行:-Mac OS X Snow Leopard (10.6) -Octave 3.2.2 -Aquaterm 1.0.1 -GNUPlot 4.0

这是我从 shell 中得到的错误示例:

Mr-Buffalo:~ buffingtonr$ gnuplot 
dyld: Library not loaded: /usr/local/lib/libaquaterm.1.0.0.dylib
  Referenced from: /usr/local/bin/gnuplot
  Reason: image not found
Trace/BPT trap


octave-3.2.2:1> f = inline('x^2')

f(x) = x^2

octave-3.2.2:5> ezplot(f)
dyld: Library not loaded: /usr/local/lib/libaquaterm.1.0.0.dylib
  Referenced from: /usr/local/bin/gnuplot
  Reason: image not found
dyld: Library not loaded: /usr/local/lib/libaquaterm.1.0.0.dylib
  Referenced from: /usr/local/bin/gnuplot
  Reason: image not found
error: you must have gnuplot installed to display graphics; if you have gnuplot installed in a non-standard location, see the 'gnuplot_binary' function
octave-3.2.2:6> 

我没有解决此问题所需的 unix 基础。有什么建议/修复吗?

4

4 回答 4

1

你有aquaterm 1.0。1安装,并且 gnuplot 引用 1.0. 0,你显然没有在你的系统上安装它。

我对在 Mac 上安装库不是很熟悉,但您也许可以从Sourceforge 上的 Aquaterm 文件页面获取 1.0.0 .dmg 文件。

或者,最新版本的 octave 或 gnuplot 可能会引用较新的库,因此您可以只升级其中一个。


这是一个真正的黑客,但我看到几个地方(包括这个邮件列表)建议你将 1.0.0 链接到你的 1.0.1 库。这通常是不可接受的,因为不能保证这些库是交叉兼容的。这至少会是一个快速的解决方案,这样您就可以及时完成作业!

于 2009-09-08T16:55:55.603 回答
1

这个问题可能与这个 http://macresearch.org/gnuplot-aquaterm-snow-leopard-1061 的答案有关:Fri, 2009-09-18 01:59 — TeGa

于 2009-09-22T10:33:05.147 回答
1

新进展

当我调查'/usr/local/lib/'时,我发现目录中有一个符号链接:

aquaterm-1.0.0 -> /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm 

所以我创建了一个类似的符号链接,使 gnuplot 正在寻找的文件 (...1.0.1) 指向默认的 AquaTerm 位置:

aquaterm-1.0.1 -> /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm 

这修复了 gnuplot 启动问题。我通过绘制一个函数验证了 gnuplot成功地自行绘制:

Terminal type set to 'x11'
gnuplot> plot sin(x)

现在我在Octave中遇到了新错误

octave-3.2.2:7> ezplot(f=inline('sin(x)'))

gnuplot> set terminal aqua enhanced title "Figure 1"
                      ^
         line 0: You can't change the terminal in multiplot mode


gnuplot> if (exists("GPVAL_TERM")) print GPVAL_TERM; else print NaN
                    ^
         line 0: invalid expression 

error: Invalid call to strcat.  Correct usage is:

 -- Function File:  strcat (S1, S2, ...)

但是,我已经验证了 gnuplot 4.0 已安装并且实际上可以绘制图表。所以现在看来​​错误在于 Octave 和 GNUPlot 之间的通信。如果可能,我将尝试更新到更新版本的 gnuplot 并报告。

-水牛

于 2009-09-09T09:08:46.777 回答
0

这对我有用:

第 1 步: 将 /Library/Frameworks/AquaTerm.framework 替换为 /opt/local/Library/Frameworks/AquaTerm.framework。这将确保 gnuplot 编译引用正确的 64 位 AquaTerm 库

第 2 步: 将 /Applications/AquaTerm.app 替换为 /Applications/MacPorts/AquaTerm.app。这将确保正确的 64 位 AquaTerm 二进制文件位于正确的位置

来源: http ://slashusr.wordpress.com/2010/01/17/gnuplot-with-aquaterm-on-osx-snow-leopard/

于 2011-10-25T22:41:23.243 回答