(解决方法)Octave安装fuzzy-logic-toolkit失败

写代码的过程中需要用到gaussmf函数,故需安装fuzzy-logic-toolkit package。


问题:

在Octave5.10.下载fuzzy-logic-toolkit 0.4.4 的过程中遇到以下问题,(0.4.5版本同样会遇到)

命令行输入 

pkg install fuzzy-logic-toolkit-0.4.4.tar.gz

遇到以下问题:

parse error near line 165 of file C:\Octave\OCTAVE~1.0_\share\octave\packages\fuzzy-logic-toolkit-0.4.5\defuzz.m

  anonymous function bodies must be single expressions

>>>   y_val = @(y_val) if (y_val == max_y) 1 else 0 endif;
                        ^

error: called from
    doc_cache_create>create_cache at line 109 column 18
    gen_doc_cache_in_dir>@<anonymous> at line 143 column 16
    doc_cache_create>gen_doc_cache_in_dir at line 144 column 9
    doc_cache_create at line 55 column 12
    install>generate_lookfor_cache at line 801 column 5
    install at line 231 column 7
    pkg at line 436 column 9

解决:

Step1:修正安装包中代码

若想解决该问题,需要修改包中的问题语句,有两种方式,第一种参考下文链接中最新修改版本,在自己下载的包中直接修改defuzz.m文件中的问题代码;第二种可以下载该链接中包。能直接用于安装的包已经上传至资源,可以直接下载。

链接如下:https://download.csdn.net/download/Halsey_/12473242

1. https://sourceforge.net/p/octave/fuzzy-logic-toolkit/ci/00e05af94b3762d2e051ad28fb436da089160f40/

代码修改参考(红色为原代码,绿色为修改代码):

2.修改后的包下载链接如下(点击Download Snapshot 下载):

https://sourceforge.net/p/octave/fuzzy-logic-toolkit/ci/00e05af94b3762d2e051ad28fb436da089160f40/tree/

注意:下载后包的压缩格式为.zip,不能用于直接安装。

 

Step2:将更正后的包转化为.tar.gz格式

将修改代码后的文件夹打包成 .tar.gz格式的压缩文件,Linux系统下可直接生成,但如果是windows系统需要下载7-zip,参考以下博客,将文件夹打包成.rar.gz格式即可安装。

https://blog.csdn.net/ithomer/article/details/5111965

注意:

如果打包完遇到以下问题:

>> pkg install octave-fuzzy-logic-toolkit-00e05af94b3762d2e051ad28fb436da089160f40.tar.gz
package is missing file: COPYING
error: called from
    install>verify_directory at line 328 column 7
    install at line 109 column 9
    pkg at line 441 column 9

说明压缩时层级目录有问题,应该只用二级目录,如下:


测试:

安装最新的fuzzy-logic-toolkit包,可以看到已经安装成功,

load后调用demo,运行成功:

demo('gaussms')

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章