2

我正在尝试初始化一个空数组,它本身包含 5 个空数组。但是 matlab 似乎只是创建了一个简单的空数组变量。以下是我尝试过的两种语法。如果在matlab中可能有什么想法吗?

bins = [ []; []; []; []; []  ];

bins = repmat([], 5, 1)
4

3 回答 3

4

deal对于这样的分配是一个很好的功能:

[bins{1:5}] = deal([]);

这将创建一个元胞数组bins,其中每个元素都bins{i}包含一个空数组。

于 2012-05-31T16:06:59.990 回答
3

MATLAB 只有矩阵,即(可能是多维的)数值类型(或字符或逻辑值)数组。要将其他结构分组到一个变量中,请尝试使用元胞数组,例如

bins = { []; []; []; []; []  };

然后,您必须使用大括号访问外部数组的元素,例如,bins{2}而不是bins(2).

于 2012-05-31T15:54:22.167 回答
0

初始化它的另一个技巧:

>> bins = {}      %# just to make sure `bins` wasn't used before
>> bins{5} = []
bins = 
    []    []    []    []    []
于 2012-06-01T00:48:47.540 回答