2014-02-19 209 views

回答

1

您可以使用功能reshape将矩阵尺寸更改为您想要的尺寸(只要它们兼容)。

4

答案取决于您是按行还是按列来工作。假设您有

>> m = [1 2 3 4 5 6]; 

并且您想将其变成2 x 3矩阵。你可以做

>> reshape(m,2,3) 
ans = 
    1  3  5 
    2  4  6 

>> reshape(m.',3,2).' %// note inversion of size and two transposes 
>> ans = 
    1  2  3 
    4  5  6 

在你的情况,11036是不是一个完美的正方形,所以,除非你从原来的矩阵删除条目或引入新的,你不能转换成一个方阵目标矩阵中的值。

1

另一种选择。如果你想获得最小的方阵,将举行您的载体,并垫以零任何未使用的元素,你可以使用以下命令:

a = rand(11036,1);  % Demo data 
n = ceil(sqrt(numel(a))); % Dimension of smallest square matrix 
b = zeros(n); 
b(1:numel(a)) = a(:); 

这将创造在这种情况下,106按106矩阵。另一个简单的例子

a = 1:13; 
n = ceil(sqrt(numel(a))); % 4 
b = zeros(n); 
b(1:numel(a)) = a(:) 

回报

b = 

1  5  9 13 
2  6 10  0 
3  7 11  0 
4  8 12  0