相关疑难解决方法(0)

将代码从Mathematica复制到其他平台的已知问题?

我刚注意到如果你在MMA(8.0.1/win7-64)中有这个:

在此输入图像描述

然后你把它复制到SO(只是ctrl-c ctrl-v),你得到这个:

(maxY - minY)/stepy/(maxX - minX)/stepx  
Run Code Online (Sandbox Code Playgroud)

这在数学上是等价的.它应该是这样的:

((maxY - minY)/stepy)/((maxX - minX)/stepx)
Run Code Online (Sandbox Code Playgroud)

或者这个(InputForm以上):

((maxY - minY)*stepx)/((maxX - minX)*stepy)
Run Code Online (Sandbox Code Playgroud)

它不是由StackOverflow的内部引起的,因为与NotePad的副本相同.

是否有更多这样的问题(特别是在使用SO时,一般情况下)我们应该注意什么?

是什么导致这种情况,可以在我们这边修好,如果没有,最好的解决办法是什么?

wolfram-mathematica mathematica-frontend

10
推荐指数
1
解决办法
677
查看次数

帮助格式化我的笔记本电脑.从'代码'样式到输入样式

我觉得我做了些傻事.

我将我的单元格样式更改为"代码"并开始更改缩进并按照我喜欢的方式移动代码,(因为在"代码"单元格样式中更容易实现,因为笔记本界面不会妨碍).但经过一段时间的尝试后,我发现了这种风格的其他问题.

现在我将样式改回'输入'.但是现在所有的代码都包含了所有这些额外的空格,并且代码看起来不再像原来的"输入"样式那样好看.

我对代码进行了太多编辑和手动格式化.

有没有办法告诉Mathematica将代码"自动格式化"回默认输入样式?即删除所需的所有额外空间,按照它们的方式重新排列等等......

如果我必须亲手做到这一点,我将永远带我.我找不到这样的选项.我在菜单上尝试了很多选项,没有任何帮助.

PS.在Matlab中,这是微不足道的,只需选择所有代码,然后从菜单中选择"smart-ident",它就会这样做.

PS.我尝试过emacs Mathematica模式,他们也没有prety-print.

编辑

我试过这些:选择单元格,然后选择单元格 - >转换为,然后选择'输入窗体'并选择'输入窗体显示'.

这似乎已经删除了所有额外的空白区域.这很好.现在我只需要在所有正确的位置点击返回以将其恢复为原始形式.

至少这比手动删除空格要好得多.所以,灾难现在似乎已被遏制.

编辑

将"代码"样式转换回"标准格式"后的屏幕截图.很难读.

在此输入图像描述 谢谢,

编辑

为了确定问题是什么,给出了一些Mathematica代码,这些代码被"修复",并手动格式化,手动空间插入和手动插入返回,现在如果我只是将它放在具有默认样式的笔记本中,我希望它能够智能缩进到默认设置,并拥有所有换行等等......好像它最初是以默认样式编写的.即如果使用"输入"代码样式编写它将会是什么样的.

这是一个小函数,作为我手工格式化的一个例子.当我将它粘贴在这里时,它看起来格式不会更好.如果您将此代码复制到您的笔记本,默认样式,然后如何自动将其格式化回默认设置而不用手工完成?

If[Abs@omega <= $MachineEpsilon,
    (
      data = {{0, 0}};
      p    = ListPlot[data, Sequence@plotOptions]
     ),
    (
      driverPeriod            = 2. Pi/Abs@omega;
      valuesOfDriverAmplitude = 
    Range[aStart, aStart + aLen, aLen/aIntervals];
      timeValues              = 
    Range[initialDriverPeriod*driverPeriod, 
     finalDriverPeriod*driverPeriod, driverPeriod ];

      data  = 
    Table[0, {Length[valuesOfDriverAmplitude]}, {Length[timeValues ]}];
      total = Length[timeValues]*Length[valuesOfDriverAmplitude];
      bifurcationProgress = 0.;
      count = 0.;

      Do[
         (
           {x1, x2, x3} = 
      solve[q, valuesOfDriverAmplitude [[i]], omega, phase, 
       initialDriverPeriod*driverPeriod,
                                (finalDriverPeriod)*driverPeriod, …
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica

5
推荐指数
1
解决办法
2131
查看次数