写代码的过程中需要用到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.youkuaiyun.com/download/Halsey_/12473242
1. https://sourceforge.net/p/octave/fuzzy-logic-toolkit/ci/00e05af94b3762d2e051ad28fb436da089160f40/
代码修改参考(红色为原代码,绿色为修改代码):
2.修改后的包下载链接如下(点击Download Snapshot 下载):
注意:下载后包的压缩格式为.zip,不能用于直接安装。
Step2:将更正后的包转化为.tar.gz格式
将修改代码后的文件夹打包成 .tar.gz格式的压缩文件,Linux系统下可直接生成,但如果是windows系统需要下载7-zip,参考以下博客,将文件夹打包成.rar.gz格式即可安装。
https://blog.youkuaiyun.com/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')