格式化操作输出在Mathematica中有2个单元格

时间:2017-03-03 18:57:32

标签: module wolfram-mathematica

以下输出代码从操作语句输出一个数组。我想输出拟合和绘图作为两个动态更新的独立输出单元格。我认为它应该很简单,但我遇到了麻烦。我尝试过使用CellPrint []函数,但没有让它工作。 谢谢, 塔尔

temperatures(*mK*)= {300, 200, 150, 100, 75, 50, 25, 11, 10};

F[t_, \[Nu]_] := t^\[Nu];

rd (*uOhms*)= {27173.91304, 31250., 42372.88136, 200601.80542, 
   1.05263*10^6, 1.33333*10^7, 1.33333*10^8, 2.*10^8, 2.1*10^8};

logRd = Log10[rd];

f[\[Nu]0_] := Module[{\[Nu]},
  \[Nu] = \[Nu]0;
  data = Transpose[{F[temperatures, \[Nu]]*10^3, logRd}];
  fitToHexatic = LinearModelFit[data[[4 ;; 6]], x, x];
  plota = 
   Plot[fitToHexatic["BestFit"], {x, 0, data[[-1]][[1]]}, 
    Axes -> False];
  plotb = ListPlot[data, Axes -> False];
  {fitToHexatic, Show[{plota, plotb}, Axes -> True]}
  ]

Manipulate[
 f[nu],
 {nu, -0.2, -1}
 ]

输出屏幕截图:

Screenshot of the output

1 个答案:

答案 0 :(得分:1)

您不需要使用Manipulate。您可以使用较低级别的功能获得更多控制权。 E.g。

Slider[Dynamic[nu, (f[#]; nu = #) &], {-0.2, -1}]
Dynamic[Normal[fitToHexatic]]
Dynamic[Show[{plota, plotb}, Axes -> True]]

另见Prototypical Manipulate in lower level functions