私はMATLABにforループを持っています(私は知っています、私は知っています-私はベクトル化を使用する必要がありますが、この特定の場合はループするのが理にかなっています)ベクトルの特定の要素を値に置き換えます。このベクトルは、カスタム列挙データ型です。組み込みのデータ型を使用した同様のアプローチと比較して、置換は非常に時間がかかります(以下の簡単なテスト結果を参照してください)。多少の違いはあると思いますが、3桁高いようです。これは既知の問題ですか?
問題を再現するには、次の列挙を作成します。
classdef MyEnum 列挙 TRUE FALSE 不確定 終わり 終わり
ベクトルを初期化し、ループ内でいくつかの置換を行います。
>> v = repmat(MyEnum.TRUE、100000、1); >>チック; ii = 1:length(v);の場合 v(ii)= MyEnum.FALSE; 終わり; toc; 経過時間は0.824617秒です。
これを、組み込みタイプを使用した同様のアプローチと比較してください。
>> v = true(100000、1); >>チック; ii = 1:length(v);の場合 v(ii)= false; 終わり; toc; 経過時間は0.000950秒です。