值得重新编码的简单版本内置的MATLAB函数来提高性能?

2视图(30天)
使用ADiGator, MATLAB函数的自动分化的包,我偶然发现了这个问题,包不接受任何文件涉及的函数把输入——即“变长度输入宗量”。我必须复制粘贴代码从很多内置的MATLAB函数变长度输入宗量,改变他们,拯救他们作为本地函数在自己的目录中。由此产生的功能大大简化了当然有小范围的功能。
这让我思考——这样做是有意义的对于大多数内置函数?即假设我知道在一个特定的脚本/函数被毛圈成千上万次,我只需要使用数值在一个特定的格式(即一定数量/类型的输入),有什么问题做一个简单的版本的数值代码,可能工作得更快(虽然,当然,只有能够把特定格式的输入参数),专门用于这一目的呢?也就是说这是一个不好的编程习惯(相同的方式如使用全局变量是建议)?

接受的答案

布鲁诺陈德良
布鲁诺陈德良 2022年11月26日
编辑:布鲁诺陈德良 2022年11月26日
你可以拆开任何你想要的,只是不使用相同的名称作为股票的功能。
一旦你改变了规范,功能你应该改变的函数的名称。
虽然你的数值的例子不是选择说明这一点。 数值 基本上是设计为准确但缓慢。它不会加速如果你叫它一定类型的输入。如果你想加速,编写自己的ode求解器和贸易的准确性。
5个评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年11月27日
在那里 时候,它可以让一个真正的区别。
例如,代码假设循环做很多很多ismember常量数组。每次调用它来验证参数类型和大小。然后ismember检查第二个参数已经排序,如果不是运行一个操作。然后它调用一个二叉搜索内部函数。
你可以减少开销通过批处理更多的第一个参数的值。有时,可以工作得很好。但有时你还得到很多很多的调用ismember。
对于一个已排序的第二个参数,事实证明,你可以减少开销明显不叫ismember而直接调用内部二进制搜索程序。这个例程的名称已经改变了至少一次,所以你需要一个单元测试,以确保任何给定的函数名将工作在一个新版本。

登录置评。

更多的答案(0)

类别

找到更多的在开始使用MATLAB帮助中心文件交换

标签

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!