1

受到新的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
4

1 回答 1

0

这应该适用于您的 CFD。

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}])]
于 2014-03-24T21:04:42.263 回答