我曾嘗試在Matlab多個解決方案來的矢量轉換例如從向量創建矩陣,使得其高度和寬度
A = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
成
B= [ 1 2 3 4 ]
5 6 7 8
9 10 11 12
13 14 15 16
17 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
在Matlab倍數的權力這裏所需的矩陣是8x4,或者高度或寬度是4的任意倍數。如果我們保留任何一個維度(高度或寬度)以適應所有元素並用零填充額外元素,則這意味着最接近的4的倍數。我試圖重塑像這樣
reshape([c(:) ; zeros(rem(nc - rem(numel(c),nc),nc),1)],nc,[])
這裏c是原始矢量或矩陣,NC是列數。
它只是改變行列數的數量,但沒有考慮到的高度和寬度的條件所需的可能的權力。我沒有具有vec2mat
功能的Communications Toolbox
。 另一種可能的替代思路是用全零初始化一個矩陣,然後進行賦值。但在這一點上我卡住了。所以請幫助我的matlab專家。
如何確定的行數?你的例子沒有使用4的最接近倍數... – beaker
我的意思是我得到一個任意長度的原始矩陣A.我嘗試將其轉換爲寬度或高度可以固定的新矩陣。例如'4x4,4x8,4x12'等等。 – Boggartfly
啊,所以行數是4的倍數,而不是元素的數量。我現在明白了。 – beaker