尝试安装Octave软件包时出现以下错误:
binary operator '==' not implemented for 'cell' by 'scalar' operations
error: called from
glob at line 62 column 1
install at line 60 column 11
pkg at line 437 column 9
例如,无论我是从本地下载还是从Forge安装,这种情况都会在struct和optim软件包中发生。
请注意,如果我加载Lightspeed library(版本2.8),它将替换内置的glob
函数,则会发生这种情况。
答案 0 :(得分:1)
我无法在我的机器上进行广泛的测试,但是LightSpeed“工具箱”似乎不过是“文件”的集合(尽管需要进行初始编译)。
将此集合添加到路径中会使其阴影一个核心八度音阶函数(glob
),而该函数在matlab中不存在。
一种解决方法是创建一个名称空间,即不要将有问题的项目直接添加到路径中,而是将其包装在名称前面带有加号('+')的文件夹周围(例如“ + Lightspeed”) ,然后将其添加到路径中。然后,您可以调用该名称空间限定的所有Lightspeed函数,例如“ Lightspeed.digamma”。
理论上这应该起作用;这取决于特定的实现方式,他们如何合理地处理相对引用等,但从理论上讲应该没问题。
或者,您可以稍微修改Lightspeed代码,并用glob
或类似的东西替换Lglob
的所有出现。
或者,如Cris建议的那样,您可以尝试从路径中删除Lightspeed,仅在需要使用其功能之一(或在执行Lightspeed相关功能之前将cd
放入其文件夹中)时加载它。 >
正如评论中指出的那样,这值得作为一个bug提出,包括Lightspeed 1 和Octave。