Matlab 在方阵中使用对角线值?避免循环

Matlab 在方阵中使用对角线值?避免循环,matlab,Matlab,我有2(1 x n)个矩阵,我想把每个元素相乘,n次,第二个矩阵每次移动1步 这段代码运行得很好,但我想知道,如果使用(n×n)矩阵、对角线上的值和无“for循环”的更好方法是否会更快(更优雅) 您可以使用卷积获得与代码相同的结果: y = conv(x1, fliplr([x2 x2]), 'same'); 你的代码计算一个向量y,但是你提到了一个矩阵。你应该澄清第二部分 y = conv(x1, fliplr([x2 x2]), 'same');

我有2(1 x n)个矩阵,我想把每个元素相乘,n次,第二个矩阵每次移动1步

这段代码运行得很好,但我想知道,如果使用(n×n)矩阵、对角线上的值和无“for循环”的更好方法是否会更快(更优雅)


您可以使用卷积获得与代码相同的结果:

y = conv(x1, fliplr([x2 x2]), 'same');

你的代码计算一个向量
y
,但是你提到了一个矩阵。你应该澄清第二部分
y = conv(x1, fliplr([x2 x2]), 'same');