寫代碼的過程中需要用到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 下載):
注意:下載後包的壓縮格式爲.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')