我注意到在 Matlab 中创建相当大的表(> 10,000 行)可能会很慢,因为构造函数调用了一个函数,checkDuplicateNames
. 但是,我通常确信我传递给表的名称已经是唯一的。
下面很好地说明了这个问题。生成 10,000 个随机值需要不到一毫秒的时间,但生成带有字符串行名的随机值表需要 1.4 秒,而通过检查重复的行名则需要 1.4 秒:
profile on;
a = rand(10000,1);
strind = cellstr(num2str((1:10000)'));
b = table(a, 'RowNames', strind);
profile viewer
那我很好奇,有没有另一种方法可以在 Matlab 中创建表而不调用checkDuplicateNames
函数?