MATLAB - 使用矩阵乘法而不是RESIZE命令调整矩阵大小

时间:2013-05-28 19:18:02

标签: matlab matrix

对于一个特定的问题,我需要单独使用矩阵的乘法来设计矩阵过程的大小调整。 给定一个矩阵 A 的维度(a * b,1),其中a和b是整数,我需要找到一种方法来将 A 的大小调整为维度(a,b) )像这样:

M * A * N =调整大小(A,a,b)

其中dim(M)=(a,a * b)且dim(N)=(1,b)。它不一定是两个矩阵,但我认为不可能有任何其他方式。

1 个答案:

答案 0 :(得分:3)

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

您正在搜索没有此类MN

假设:

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应该会产生结果的ith行(或resh_A)。 因此resh_A将如下所示:

(注意N 1 x b

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

这不是一般矩阵(它是一个排名为1的矩阵)。