8

JavaScriptからファジーロジックにアクセスする方法を知っている人はいますか? 私は Java と C++ で優れたファジー ライブラリを持っていますが、HTML5/javascript から実行できるものが欲しかったのです。

4

3 に答える 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 に答える