更快的 Matlab Table 创建

Faster Matlab Table Creation

我注意到在 Matlab 中创建相当大的 tables(>10,000 行)可能会很慢,因为构造函数 checkDuplicateNames 只调用了一个函数。但是,我通常确信传递给 table 的名称已经是唯一的。

下图很好的说明了问题。生成 10,000 个随机值需要不到 1 毫秒,但是生成 table 具有字符串行名称的随机值需要 1.5 秒,检查重复行名称需要 1.4 秒:

profile on; 
a = rand(10000,1);
strind = cellstr(num2str((1:10000)'));
b = table(a, 'RowNames', strind); 
profile viewer

那么我很好奇,有没有另一种方法可以在不调用 checkDuplicateNames 函数的情况下在 Matlab 中创建 tables?

根据来自 MathWorks 员工的 this reply,如果不更改核心 Matlab 文件,您将无法完成。