1

3 行目 (tt) をスライスすることは可能ですか? このコードは単純化されていますが、問題は似ています。配列インデックスで乗算イテレータ (3*i) を使用していますが、機能しません。ひょっとしたら、いくらでも変えられるかもしれません。

parfor i = 1 : NE      
   tmp = i * [1, -1; -1, 1];                 
   tt(3*i-1:3*i+1) = tmp([3,2,4]);          
   pp(i) = tmp(1,1,i);   
end;

ありがとう :)

4

1 に答える 1

0

スライスされた出力変数であるためには、tt文字通りループ変数のみを使用してインデックスを付ける必要がありますi(を含む:)。おそらく、tt長方形を作成し、一度に列全体を割り当ててから、後で次のように形を変えることができます。

tt = zeros(3, 10);  
parfor ii = 1:10
  tt(:, ii) = [ii; ii; ii];
end
tt = reshape(tt, 1, numel(tt));
于 2013-04-03T07:34:54.903 に答える