试图在不使用MATLAB中的for循环的情况下计算特定的和方程

时间:2016-08-01 15:18:15

标签: matlab for-loop sum

我有一个向量 x = [x_1 x_2 ... x_n],一个向量 y = [y_1 y_2 y_3]和一个矩阵 X = [x_11 x_12 ... x_1n; x_21 x_22 ... x_2n; x_31 x_32 ... x_3n]。

对于var PDFDocument = require('pdfkit'); var doc = new PDFDocument; doc.size=[50,50]; doc.end() ,我想在MATLAB中计算以下i = 1, 2, ..., n

sum

我试图写的是以下MATLAB代码:

sum((x(i) - y*X(:,i))^2)

但是我想知道我是否可以在没有for循环的情况下计算它,以便潜在地减少计算时间,特别是如果vv = (x(1) - y*X(:,1))^2; % as an initialization for i=1 for i = 2 : n vv = vv + (x(i) - y * X(:,i))^2 end 非常高......那么在MATLAB中有没有其他更优化的可能性?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

根本不需要循环,

 for i = 2:n
  y*X(:,i)
 end

y*X相同,所以x(i) - y X(:,i)只是x - y X所以基本上它是:

vv = sum((x - y * X).^2); 

感谢@beaker指出错误。