它可以用Matfmatica以CDF格式实现吗?

时间:2014-03-19 10:09:42

标签: wolfram-mathematica interactive wolfram-cdf

受到新Deployment & Connectivity功能广告的鼓舞,我决定使用Mathematica 8开发一个与同事共享的简单应用程序。目的是为多目标优化的交互方法演示用户界面。该接口用于为一组标准设置一些成对系数(这在我的问题的上下文中并不重要)。

重要的是我需要显示一个包含相互交互的输入字段的表,特别是在交互过程中可以用非交互内容(例如文本)动态替换

在开发应用程序并将其部署到CDF之后,我了解到它在Internet浏览器中不起作用(因为我没有使用Manipulate函数,其功能非常有限)。我的应用程序甚至无法在Mathematica播放器中正常工作!

我的应用程序的简化版本如下所示。问题如下:可以在Mathematica 8中实现这样的交互式应用程序(记住“重要的是什么”部分),以便可以与没有Mathematica的其他人(主要是在Windows平台上)共享安装?如果没有,你能否建议一个替代平台,以最简单的方式实现这种交互式应用程序(Python?Java?)。

提前谢谢。

nCriteria = 5;
RatioControl[{i_, j_}] := Dynamic[
   If[Ratio[i, j] === Null,
    If[Ratio[j, i] === Null,
     InputField[Dynamic@Ratio[i, j], Number, FieldSize -> 4],
     N[1/Ratio[j, i]]
     ], Ratio[i, j]
    ]
   ];
ControlTable = Dynamic[
   Grid[
    Table[
     If[i == j, Item["", Background -> GrayLevel[0.7]],
      RatioControl[{i, j}]],
     {i, nCriteria}, {j, nCriteria}
     ], Frame -> All
    ]
   ];
Do[Ratio[i, j] = Null, {i, nCriteria}, {j, nCriteria}];
ControlTable

1 个答案:

答案 0 :(得分:0)

这应该适用于您的差价合约。

DynamicModule[{}, Dynamic[Grid[
   Table[If[i == j, Item["", Background -> GrayLevel[0.7]],
     RatioControl[{i, j}]], {i, nCriteria}, {j, nCriteria}],
   Frame -> All]],
 Initialization :> (RatioControl[{i_, j_}] := Dynamic[
     If[Ratio[i, j] === Null, If[Ratio[j, i] === Null, 
       InputField[Dynamic@Ratio[i, j], Number, FieldSize -> 4],
       N[1/Ratio[j, i]]], Ratio[i, j]]];
   nCriteria = 5;
   Do[Ratio[i, j] = Null, {i, nCriteria}, {j, nCriteria}])]