8

有谁知道如何从 javascript 访问模糊逻辑?我有一个很好的 Java 和 C++ 模糊库,但我想要一些可以从 HTML5/javascript 运行的东西。

4

3 回答 3

6

有两个项目可用:

  1. https://github.com/marcolanaro/JS-Fuzzy - 准备在浏览器中使用

  2. https://github.com/sebs/node-fuzzylogic - nodejs 模块,可以在浏览器中使用

于 2014-02-11T09:15:04.970 回答
1

选项是:

  1. 将逻辑放在服务器上并使用 ajax 从网页访问它。
  2. 用 javascript 重写它并将其包含在您的页面中。
  3. 将 C++ 放入浏览器插件并从 javascript 访问插件。

根据具体情况,选项 1) 或 2) 可以正常工作。选项 3) 通常是一个坏主意,除非它是一个非常专业的应用程序,以某种方式使它值得处理插件的分发、维护、测试和用户头痛。

于 2011-07-30T22:58:07.647 回答
0

我对那些想要在 NodeJS 中做的人的回答,因为它熟悉 javascript

请使用一个很棒的 nodejs-java 和一个用 Java 编写的神奇的 jFuzzylite 库。

节点java:https ://www.npmjs.com/package/java

Fuzzylite:http ://www.fuzzylite.com/ 。它提供了jfuzzylite.jar

我在 Matlab member_function_pn.fis 中创建了一个隶属函数它有两个输入和一个输出。在 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 回答