2013-05-28 117 views
0

对于特定问题,我需要设计使用矩阵乘法单独调整矩阵过程的大小。 鉴于一个维度的矩阵(A * B,1),其中a和b是整数,我需要找到一种方法来调整一个到尺寸(A,B)是这样的:MATLAB - 使用矩阵乘法而不是RESIZE命令调整大小矩阵

中号* A * N = resize(A,a,b)其中dim(M)=(a,a * b)和dim(N)=(1,b)。它不一定是两个矩阵,但我认为这是不可能的。

+3

你是说你不能使用'reshape'?这是一个奇怪的限制。为什么不? – shoelzer

+0

shoelzer,这是一个优化问题。所以我需要以某种方式将此线性化。所以我需要将东西表示为矢量和矩阵,并进行一些操作。 – SPRajagopal

+0

听起来像一个[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)给我...你可以发布你想要优化和怎么样优化? –

回答

3

如果您不能使用reshapevec2mat,则需要分别对每个元素A进行操作。

没有你正在寻找的MN

假设:

resh_A = M*A*N; 

让我们来研究这个方程的一行。假设的M*A一行:

temp_i = M(i, :) * A; 

由于M(i, :)1 x a*bAa*b x 1; temp_i应该是1 x 1矩阵。

现在temp_i * N应该导致您的结果(或resh_A)的ith行。 因此resh_A看起来像:

(注N1 x b

temp_1 * N % row1 
    temp_2 * N % row2 
    temp_3 * N % row3 
    ... 

这不是一般的矩阵(它与秩1矩阵)。

+1

在Matlab的说法中,列和行向量,标量和空矩阵<= 2)都是“矩阵”,例如,ismatrix(1),ismatrix([1 2 3]),ismatrix([1; 2; 3])和ismatrix([])。 N-D数组不是。 – horchler

+1

我不确定这是完全正确的。接受你的答案,因为我显然没有。无论如何,谢谢。 – SPRajagopal

+1

我试图让它更清楚。希望能帮助到你。 @horchler:我更正了符号。谢谢。 – pm89