首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab脚本耗时过长

问Matlab脚本耗时过长
EN

Stack Overflow用户
提问于 2016-02-17 23:40:50
回答 1查看 89关注 0票数 0

我试着在一台4 4GB,2.4 GHz的Windows10笔记本电脑上运行一个同事写的Matlab程序,这真的太耗时了,我通常在5分钟没有响应的运行后中断它。

我运行分析器,注意到符号函数运行时要了我的命。有一次,以这种方式定义了几十个多项式,程序在这些定义上明显减慢:

代码语言:javascript
复制
syms P11 x y; P11= (x/r).*(y/r).*(((x/r).^2+(y/r).^2)-3);

有没有可能在使用这些多项式的同时提高速度的方法?计算机规格可能很低,但似乎并不困难,即处理器的运行速度为12%,RAM的运行速度为67%,磁盘使用率为零。在另一台处理器稍快的计算机上,相同的程序在Matlab 2012上需要130秒。

EN

回答 1

Stack Overflow用户

发布于 2016-02-18 00:07:48

您可能希望将这些符号变量替换为匿名函数(或者在较早的Matlab版中使用inline,该函数现已弃用):

代码语言:javascript
复制
P11=@(x,y,r) (x/r).*(y/r).*(((x/r).^2+(y/r).^2)-3);

在这种方式下,您只能使用双变量,因为x、y和r现在是双变量,而不是符号变量。P11将是一个函数句柄,您可以通过简单地调用以下命令来收集此类公式的结果:

代码语言:javascript
复制
myResult=P11(myX,myY,myR);

其中,myX、myY、myR是x、y、r的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35461227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档