Algorithm Can matlab';s int8功能将被更快的替代品取代
我正在使用matlab的Algorithm Can matlab';s int8功能将被更快的替代品取代,algorithm,matlab,Algorithm,Matlab,我正在使用matlab的int8函数将double转换为整数。然而,当我的程序运行大量的值时,它的性能会有点差。对于大约1400万次执行,这个函数大约需要3分钟,是我程序中最重的部分 我想知道是否有办法避免这种情况 我将尝试一些数学运算,并用其他试验更新问题 以下是代码片段: pixel_value = int8(pixel_value) + 1; 由于您只是使用像素值作为直方图的索引,因此您可以使用楼层而不是int8以相同的方式截断十进制分量 在您的示例中,表示正值,但如果期望负值,则可以使
int8
函数将double转换为整数。然而,当我的程序运行大量的值时,它的性能会有点差。对于大约1400万次执行,这个函数大约需要3分钟,是我程序中最重的部分
我想知道是否有办法避免这种情况
我将尝试一些数学运算,并用其他试验更新问题
以下是代码片段:
pixel_value = int8(pixel_value) + 1;
由于您只是使用
像素值
作为直方图的索引,因此您可以使用楼层
而不是int8
以相同的方式截断十进制分量
在您的示例中,表示正值,但如果期望负值,则可以使用fix
但这似乎并没有更快。。。嗯。因为您只是使用像素值作为直方图的索引,所以您可以使用楼层
而不是int8
以相同的方式截断十进制分量
在您的示例中,表示正值,但如果期望负值,则可以使用fix
但这似乎并没有更快。。。嗯。你可能不想在x
和y
上循环。我们可以看到整个代码吗?您是否尝试过在H、S、V平面上分别使用hist
或histc
,并写入直方图(curr\u hist,1,:)
?例如,还没有,但这是个好主意。我可以避免在所有像素上循环,我会尝试一下。你可能不想在x
和y
上循环。我们可以看到整个代码吗?您是否尝试过在H、S、V平面上分别使用hist
或histc
,并写入直方图(curr\u hist,1,:)
?例如,还没有,但这是个好主意。我可以避免在所有像素上循环,我会尝试一下。哇!实际上,这要快得多。现在只需要大约1.5秒。(用地板)哦,那很好。在我的测试中,这对我来说几乎是一样的。只要对你有用!哇!实际上,这要快得多。现在只需要大约1.5秒。(用地板)哦,那很好。在我的测试中,这对我来说几乎是一样的。只要对你有用!