我有一个一维向量,需要“取消项目”(对不起,我不知道如何告诉它)它的3D空间。如果有一个内置函数来避免循环?
一个2D的例子来澄清。我有
[1 2 3;
4 5 6;
7 8 9]它已经被投射到第一个维度。得到:
[6;
15;
24]现在我需要“去设计”它并得到:
[2 2 2;
5 5 5;
8 8 8] 然后,我将重复一组角度。
这就像一个Radon变换,但在3D中。那么,在3D空间中,如果我幸运的话,对于兴趣轴的任意角度,我们有这样的作用吗?谢谢。
发布于 2013-11-05 12:38:47
这里有一种简单的方法,可以在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-05 12:24:44
做这件事有几种方法。
将v设为“投影向量”(示例中为v = [6;15;24;] ),d为所需列数(示例中为d = 3 ),那么:
>> v * ones( 1, d ) / d另一个选择
>> repmat( v/d, [1 d] )发布于 2013-11-05 12:26:14
在2D中:
B = sum(A')';
C = diag(B)*(ones(size(A))/size(A,2));
C =
2 2 2
5 5 5
8 8 8它应该是非常直接的,以适应3D。
https://stackoverflow.com/questions/19788775
复制相似问题