Matlab でかなり大きなテーブル (> 10,000 行) を作成すると、コンストラクターによって呼び出される単一の関数が原因で非常に遅くなる可能性があることに気付きましたcheckDuplicateNames
。ただし、通常、テーブルに渡す名前は既に一意であると確信しています。
以下は、問題をよく示しています。10,000 個のランダム値の生成には 1 ミリ秒もかかりませんが、文字列の行名を含むランダム値のテーブルの生成には 1.4 秒かかり、重複する行名のチェックには 1.4 秒かかります。
profile on;
a = rand(10000,1);
strind = cellstr(num2str((1:10000)'));
b = table(a, 'RowNames', strind);
profile viewer
checkDuplicateNames
関数を呼び出さずに Matlab でテーブルを作成する別の方法はありますか?