こんにちは私は次を持っています:
for j = 1:N
for i = 1:N
vecdir(i,:) = pos(i,:) - pos(j,:);
dist(i,:) = pdist2(pos(i,:),pos(j,:));
norm(i,:) = vecdir(i,:)./(dist(i,:)).^2;
end
r{j} = norm;
end
u = {or};
ここで、2つのオブジェクトuとrがあります。
>> u
u =
[9x3 double]
>> r
r =
Columns 1 through 8
[9x3 double] [9x3 double] [9x3 double] [9x3 double] [9x3 double] [9x3 double] [9x3 double] [9x3 double]
Column 9
[9x3 double]
そして、rの各セルを取得し、そのセルの各要素とセルuの各要素の外積を取得し、結果を1つのベクトルサイズに合計します[13]。これまでのところ、次を使用して一度に1つのセル(rの)を実行できます。
b_func = @(u)nansum(cell2mat(cellfun(@(v)cross(u,v)', {r{1}}, 'Un', 0))', 1);
b = cellfun(b_func, u, 'UniformOutput', 0)
どこ
b = [1x3 double]
ただし、私がやりたいのは、rのすべてのセルに対してこれを実行して、最終的にオブジェクトを作成することです。
b =
Columns 1 through 8
[1x3 double] [1x3 double] [1x3 double] [1x3 double] [1x3 double] [1x3 double] [1x3 double] [1x3 double]
Column 9
[1x3 double]
ここで、各セルは上記の計算ですが、rの各セルを繰り返し処理しています。これを行う方法はありますか?