1

1D ベクトルがあり、3D 空間に「投影解除」する必要があります (申し訳ありませんが、言い方がわかりません)。ループを回避する組み込み関数がある場合は?

明確にするための2Dの例。私が持っていた

[1 2 3;
 4 5 6;
 7 8 9]

一次元に投影されています。得たもの:

[6;
15;
24]

次に、それを「デプロジェクト」して取得する必要があります。

[2 2 2;
 5 5 5;
 8 8 8] 

次に、一連の角度に対してそれを繰り返します。

これはラドン変換に似ていますが、3D です。3D空間でのそのような種類のアクションのための機能、および(運が良ければ)関心のある軸の任意の角度のための機能がありますか。ありがとうございました。

4

3 に答える 3

2

このベクトルに対して 3D で行う簡単な方法を次に示します。

v = [6;15;24];

repmat(v, [1 3 3])/9

任意のベクトルを形状に投影解除する一般化されたソリューションrequiredDimensions:

v = [6;15;24];
requiredDimensions = 3;

n = numel(v);
myDims = [1 repmat(n,1,requiredDimensions - 1)];
repmat(v, myDims )/prod(myDims)
于 2013-11-05T12:38:47.157 に答える
1

それにはいくつかの方法があります。
「投影ベクトルv」(v = [6;15;24;]あなたの例では)にdなり、希望の列数(d = 3あなたの例では)になり、次のようになります。

>> v * ones( 1, d ) / d

あるいは

>> repmat( v/d, [1 d] )
于 2013-11-05T12:24:44.873 に答える