Arrays 单个索引的二维数组索引之和

Arrays 单个索引的二维数组索引之和,arrays,matlab,parfor,Arrays,Matlab,Parfor,我试图在MATLAB中创建一个并行for循环,以填充mxm矩阵,如下所示: parfor i = 1 : m^2 A(i) = sum( x .^ %Sum of indices% ); end 如果我在没有parfor的情况下做这件事,我只会做: for i = 1 : m for j = 1 : m A(i,j) = sum( x.^(i+j) ); end end 然而不幸的是,parfor不允许在它的主体中使用其他索引,因此我不能做我

我试图在MATLAB中创建一个并行for循环,以填充
m
x
m
矩阵,如下所示:

parfor i = 1 : m^2
     A(i) = sum( x .^ %Sum of indices% );
end
如果我在没有parfor的情况下做这件事,我只会做:

for i = 1 : m
     for j = 1 : m
          A(i,j) = sum( x.^(i+j) );
     end
end
然而不幸的是,
parfor
不允许在它的主体中使用其他索引,因此我不能做我想做的事情

我曾尝试使用
ceil(I/3)+mod(I,3)
来提取索引的总和,但是这不起作用,因为在
I=3
时,它给了我
1
而不是我想要的
4


有谁有更好的方法来提取索引的总和吗?

这里是另一个向量化变量:

  [I,J]=ndgrid(1:m);
  K=I+J;

  A=zeros(m);

  parfor i=1:m^2

   A(i)=sum(x.^(K(i)));

  end
[I,J] = ndgrid(1:m, 1:m);
K = I + J;
A = reshape(sum(bsxfun(@power, x, K(:).')), [m m]);

在您的示例中,
x
是什么?您还可以提供“A”的示例。@Marcin
x
是一个自变量数组,我需要从中计算
A
的元素,这是多项式最小二乘拟合所需的联立方程的系数矩阵。我怀疑A
parfor
是否会加快速度,事实上,我担心这会使速度变慢。。你最好用矢量化的方式重写它。
[I,J] = ndgrid(1:m, 1:m);
K = I + J;
A = reshape(sum(bsxfun(@power, x, K(:).')), [m m]);