对于特定问题,我需要设计使用矩阵乘法单独调整矩阵过程的大小。 鉴于一个维度的矩阵(A * B,1),其中a和b是整数,我需要找到一种方法来调整一个到尺寸(A,B)是这样的:MATLAB - 使用矩阵乘法而不是RESIZE命令调整大小矩阵
中号* A * N = resize(A,a,b)其中dim(M)=(a,a * b)和dim(N)=(1,b)。它不一定是两个矩阵,但我认为这是不可能的。
对于特定问题,我需要设计使用矩阵乘法单独调整矩阵过程的大小。 鉴于一个维度的矩阵(A * B,1),其中a和b是整数,我需要找到一种方法来调整一个到尺寸(A,B)是这样的:MATLAB - 使用矩阵乘法而不是RESIZE命令调整大小矩阵
中号* A * N = resize(A,a,b)其中dim(M)=(a,a * b)和dim(N)=(1,b)。它不一定是两个矩阵,但我认为这是不可能的。
如果您不能使用reshape
或vec2mat
,则需要分别对每个元素A
进行操作。
没有你正在寻找的M
和N
。
假设:
resh_A = M*A*N;
让我们来研究这个方程的一行。假设的M*A
一行:
temp_i = M(i, :) * A;
由于M(i, :)
是1 x a*b
和A
是a*b x 1
; temp_i
应该是1 x 1
矩阵。
现在temp_i * N
应该导致您的结果(或resh_A
)的ith
行。 因此resh_A
看起来像:
(注N
是1 x b
)
temp_1 * N % row1
temp_2 * N % row2
temp_3 * N % row3
...
这不是一般的矩阵(它与秩1矩阵)。
在Matlab的说法中,列和行向量,标量和空矩阵<= 2)都是“矩阵”,例如,ismatrix(1),ismatrix([1 2 3]),ismatrix([1; 2; 3])和ismatrix([])。 N-D数组不是。 – horchler
我不确定这是完全正确的。接受你的答案,因为我显然没有。无论如何,谢谢。 – SPRajagopal
我试图让它更清楚。希望能帮助到你。 @horchler:我更正了符号。谢谢。 – pm89
你是说你不能使用'reshape'?这是一个奇怪的限制。为什么不? – shoelzer
shoelzer,这是一个优化问题。所以我需要以某种方式将此线性化。所以我需要将东西表示为矢量和矩阵,并进行一些操作。 – SPRajagopal
听起来像一个[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)给我...你可以发布你想要优化和怎么样优化? –