matlab效率 - 切片与分配

时间:2016-04-02 19:49:35

标签: matlab

我很好奇,在使用矩阵切片计算与将切片分配给另一个变量,然后使用变量进行计算之间,MATLAB中存在很大的速度差异吗?

即。以下之间的区别:

A = randn(1000,1000);
x = randn(500,1);
y = A(:,1:500)*x;

A = randn(1000,1000);
x = randn(500,1);

Ahat = A(:,1:500);
y = Ahat*x;

为了清晰起见,我通常使用第二种方法,但后者是更低效的内存/计算方式,因为在创建Ahat时会使用额外的内存吗?

如果我需要多个x_i向量,答案是否会改变?在这种情况下,重新分配给一个新变量是否更好,因为(可能)切片的内存访问速度较慢?

0 个答案:

没有答案