2013-05-28 142 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