用mathematica循环求一个表达式,怎么把每次的结果保存起来,而不是被重写掉?

 我来答
xzcyr
2013-03-03 · TA获得超过3391个赞
知道大有可为答主
回答量:1399
采纳率:100%
帮助的人:731万
展开全部
你的“保存”是什么意思?老实说这取决于你的代码,你最好把相应的代码补上,我现在并不清楚你的结果是被覆盖了还是其实是没显示出来,另外,Mathematica的话,最好就是不要使用循环,那不是Mathematica的做法。比如你可以用Table:

Table[ i + 5 j^2, {i, 5}, {j, 6}]
(* 所有的 i 从1到5,j 从1到6的 i + 5 j^2 的值 *)

这样的语法简洁,代码运行速度也快。非要用Do甚至For之类的循环并且把结果显示出来的话,你可以在循环体里加Print语句之类的,如果你那只是没显示出来,那你直接输入你的变量名再Shift+Enter就可以把你的量调出来了。
追问
我想在MATHEMATICA上用龙格库塔方法,必须用循环啊,我定义了个数组把数存到数组里去了,好像管用。。还有,怎么跳出循环啊?
追答
……谁说必须要用循环了,再说Table的本质就是优化的循环,强烈建议你好好看看帮助文档。跳出循环……一般都是依步长跳出啊,要中止,好像是Break[]吧,唉哟这种的平时不用我一下也想不起来,你看看帮助吧,Mathematica帮助很好用的
mm_酱
2013-03-06 · TA获得超过148个赞
知道答主
回答量:42
采纳率:0%
帮助的人:33.3万
展开全部
用Sow和Reap貌似比较方便,这是个例子:
Last@Reap[Do[Sow@Sin[i], {i, 0, Pi, .1}]]

同样的方法可以用在For循环,While循环里,比先建空表再AppendTo要好,速度更快也减少很多不必要的思考,比如对单个元素的操作等等。

关于跳出循环,可以使用Return,Break,【Catch, Throw】,具体的看这里:
http://zh.wikibooks.org/wiki/Mathematica/%E5%88%9D%E7%BA%A7%E6%93%8D%E4%BD%9C#.E5.B1.80.E9.83.A8.E8.B7.B3.E8.BD.AC.E8.AF.AD.E5.8F.A5.EF.BC.9ABreak.EF.BC.8CContinue.EF.BC.8CReturn

题外话,Mathematica的确不适合写C语言风格的程序,你可以选择熟悉一下函数式编程的思考方式或者移步matlab。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式