在MATLAB中扩展2d数组的大小

时间:2015-07-07 08:04:11

标签: matlab

我在MATLAB中有一个2d矩阵arr,大小为10x10。如果我需要增加它来说20x20我是否需要创建一个大小为20x20的新数组并复制将arr的所有内容放入其中。或者有一些方法可以扩展arr的大小并使其成为20x20而无需复制新数组中的所有元素吗?

2 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

>> arr = ones(10); % your input matrix
>> arr(20,20) = 0;
>> size(arr)

ans =
20    20

尺寸较小的示例:

>> arr = ones(3);
>> arr(5,5) = 0

arr =

     1     1     1     0     0
     1     1     1     0     0
     1     1     1     0     0
     0     0     0     0     0
     0     0     0     0     0

答案 1 :(得分:0)

如果预分配的空间太小,Matlab会自动增加数组大小。然而,这是低效的,因此您应该创建一个新的更大的数组并复制内容。

smallArray = zeros(10,10, 'int32') %creates a 10x10 int array

largerArray = zeros(20,20,'int32') %creates larger array
largerArray(1:10,1:10) = smallArray; %copies the 10x10 array to the upper left of the large array