JavaScriptからファジーロジックにアクセスする方法を知っている人はいますか? 私は Java と C++ で優れたファジー ライブラリを持っていますが、HTML5/javascript から実行できるものが欲しかったのです。
6380 次
3 に答える
0
javascriptに慣れているのでNodeJSでやりたい方への私の回答
すばらしい nodejs-java と、Java で書かれた奇跡の jFuzzylite ライブラリを使用してください。
ノード Java: https://www.npmjs.com/package/java
ファジーライト: http://www.fuzzylite.com/ . jfuzzylite.jarを提供します
Matlab Membership_function_pn.fis にメンバーシップ関数を作成しました。2つの入力と 1 つの出力があります。Matlab コマンド インターフェイスでmfeditと入力すると、ファジー関数を簡単に作成できる FIS エディターが表示されます。
以下は、作業を行った私のコードです!! (コードが Nodejs でどのように機能するかを理解するには、まず jfuzzylite.jar を使用して Java で練習してください)。
var java = require("java");
var fs = require("fs");
java.classpath.push("commons-lang3-3.1.jar");
java.classpath.push("commons-io.jar");
java.classpath.push("jfuzzylite.jar");
var matlabString = fs.readFileSync("dataMatlab/membership_function_pn.fis", 'utf8');
var FisImporter = java.newInstanceSync("com.fuzzylite.imex.FisImporter");
var engineMatlab = java.callMethodSync(FisImporter, "fromString", matlabString);
var InputVariable = java.newInstanceSync('com.fuzzylite.imex.FisImporter');
var OutputVariable = java.callMethodSync(engineMatlab, "getOutputVariable", 0);
var bandwidthInputVariable = java.callMethodSync(engineMatlab, "getInputVariable", 0);
var timeInputVariable = java.callMethodSync(engineMatlab, "getInputVariable", 1);
java.callMethodSync(bandwidthInputVariable, "setInputValue", -0.5);
java.callMethodSync(timeInputVariable, "setInputValue", 0.5);
java.callMethodSync(engineMatlab, "process");
var resultFuzzy = java.callMethodSync(OutputVariable, "getOutputValue");
console.log("안녕하세요" + resultFuzzy);
于 2017-01-06T06:36:37.720 に答える