Matlab优化,'任意'功能的替代品

时间:2014-01-26 17:32:01

标签: matlab optimization

有什么方法可以优化以下代码。 enter image description here

上面的函数是一个嵌套函数,finalBin2Grey是一个单元格,其余都是简单的双精度和数组。

enter image description here

此外,MATLAB pro-filer显示所有其他行的功能为41.122 s。但是没有这样的线/线占据那个时间。这是调用函数的开销还是我错过了什么。?

编辑: 以下是该功能的高级概述:

检查grayLevelupperLimit之间是否lowerLimit,如果是,则返回true。

grayLevel也不能等于upperLimitlowerLimit才能生效。

单元格finalBin2grey包含双精度数或双精度数组,具体取决于索引。

2 个答案:

答案 0 :(得分:2)

我不确定它是any。它可能是==的使用。以下是一些可供尝试的选项(如果没有minimal, complete, tested and readable example,几乎不可能提供具体帮助。)

我不确定您是否需要第二个if / else声明。以下就足够了:

bool = any(grayLevel>lowerLimit) && any(grayLevel<upperLimit);

仅当true严格在限制之间时才会返回grayLevel,否则返回零。您可能希望将>替换为>=<替换为<=,以确保不会遗漏边缘上的点。

答案 1 :(得分:0)

我怀疑你重新发明了HISTC或IMHIST。整个例程可以通过使用其中一个来优化。