(解決方法)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')

 

 

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