-1

m次のようにxm行列を埋めるために、MATLAB で並列 for ループを作成しようとしています。

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ませ14

インデックスの合計を抽出するより良い方法はありますか?

4

3 に答える 3

1
   r=sum(  bsxfun(@power, x(:), m+1:2*m  ) ,1);
   c=sum(  bsxfun(@power, x(:), m+1:-1:2 ) ,1);

   A=fliplr(toeplitz(c,r));
于 2014-01-20T02:49:58.013 に答える
0
  [I,J]=ndgrid(1:m);
  K=I+J;

  A=zeros(m);

  parfor i=1:m^2

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

  end
于 2014-01-20T02:45:34.177 に答える