有什么方法可以优化以下代码。
上面的函数是一个嵌套函数,finalBin2Grey是一个单元格,其余都是简单的双精度和数组。
此外,MATLAB pro-filer显示所有其他行的功能为41.122 s。但是没有这样的线/线占据那个时间。这是调用函数的开销还是我错过了什么。?
编辑: 以下是该功能的高级概述:
检查grayLevel
和upperLimit
之间是否lowerLimit
,如果是,则返回true。
grayLevel
也不能等于upperLimit
或lowerLimit
才能生效。
单元格finalBin2grey
包含双精度数或双精度数组,具体取决于索引。
答案 0 :(得分:2)
我不确定它是any
。它可能是==
的使用。以下是一些可供尝试的选项(如果没有minimal, complete, tested and readable example,几乎不可能提供具体帮助。)
我不确定您是否需要第二个if
/ else
声明。以下就足够了:
bool = any(grayLevel>lowerLimit) && any(grayLevel<upperLimit);
仅当true
严格在限制之间时才会返回grayLevel
,否则返回零。您可能希望将>
替换为>=
或<
替换为<=
,以确保不会遗漏边缘上的点。
答案 1 :(得分:0)
我怀疑你重新发明了HISTC或IMHIST。整个例程可以通过使用其中一个来优化。