我在 MATLAB 中有一个 for 循环(我知道,我知道 - 我应该使用向量化,但在这种特殊情况下,循环才有意义)它用一个值替换向量的某些元素。此向量是自定义枚举数据类型。与具有内置数据类型的类似方法相比,替换非常慢(请参见下面的简单测试结果)。我预计会有一些差异,但三个数量级似乎很高。这是一个已知问题吗?
要重新创建问题,请创建以下枚举:
类定义 MyEnum 枚举 真的 错误的 不定 结尾 结尾
初始化一个向量并在循环中进行一些替换:
>> v = repmat(MyEnum.TRUE, 100000, 1); >> 抽动; 对于 ii = 1:长度(v);v(ii) = MyEnum.FALSE; 结尾; 目录; 经过的时间是 0.824617 秒。
将此与使用内置类型的类似方法进行比较:
>> v = true(100000, 1); >> 抽动; 对于 ii = 1:长度(v);v(ii) = 假;结尾; 目录; 经过的时间是 0.000950 秒。