Lightspeed中断Octave Forge软件包安装-未实现二进制运算符'=='

时间:2018-09-04 22:11:32

标签: octave

尝试安装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函数,则会发生这种情况。

1 个答案:

答案 0 :(得分:1)

我无法在我的机器上进行广泛的测试,但是LightSpeed“工具箱”似乎不过是“文件”的集合(尽管需要进行初始编译)。

将此集合添加到路径中会使其阴影一个核心八度音阶函数(glob),而该函数在matlab中不存在。

一种解决方法是创建一个名称空间,即不要将有问题的项目直接添加到路径中,而是将其包装在名称前面带有加号('+')的文件夹周围(例如“ + Lightspeed”) ,然后将其添加到路径中。然后,您可以调用该名称空间限定的所有Lightspeed函数,例如“ Lightspeed.digamma”。

理论上这应该起作用;这取决于特定的实现方式,他们如何合理地处理相对引用等,但从理论上讲应该没问题。

或者,您可以稍微修改Lightspeed代码,并用glob或类似的东西替换Lglob的所有出现。

或者,如Cris建议的那样,您可以尝试从路径中删除Lightspeed,仅在需要使用其功能之一(或在执行Lightspeed相关功能之前将cd放入其文件夹中)时加载它。 >

正如评论中指出的那样,这值得作为一个bug提出,包括Lightspeed 1 和Octave。


1:虽然大概Lightlight会说他们不支持Octave,但是欢迎您自己尝试修改代码