arrays - 在 matlab 中,我应该使用什么来收集不同对象的集合?

标签 arrays matlab multidimensional-array nested-sets

这在 Matlab 中是非法的

a = [[1];[2 3]]

在允许这样做的语言中,这称为嵌套数组。

我找到了一种在 Matlab 中执行相同操作的方法:

 a = {[1];[2 3]}

这叫什么? 如何在无需编写大量代码的情况下用固定大小(例如 100)初始化这样的变量?

最佳答案

它被称为元胞数组。

使用命令 cell 对其进行初始化

cellArray = cell(3,2); %# this makes a 3-by-2 cell array

存储不同对象集合的另一种方法是 struct ,您可以像这样初始化

myStruct = struct('firstField',1,'secondField',[2 3])

结构体相对于单元格的优点是字段被命名,这使得处理和记录变得更加容易。如果您想经常操作数据,单元格可以非常方便地存储数据,因为您可以使用 cellfun 等。跟他们。我发现自己经常使用单元格将数据保存在函数内,但使用结构(或对象)在函数之间传递数据。

此外,如果您有一个数字列表并希望将它们分配给元胞数组的元素,则可以使用 num2cell ,它将数组的每个元素分别放入元胞数组的一个元素中,或 mat2cell ,以防您想不均匀地分割数组。

a = {1,[2 3]}

相当于

b = mat2cell([1 2 3],[1 1],[1 2]);

关于arrays - 在 matlab 中,我应该使用什么来收集不同对象的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4139498/

相关文章:

javascript - 如何使用 lodash 过滤任何匹配值的数组?

arrays - 如何检查数组是否为多维数组

c - 访问使用 malloc 初始化的数组时出现段错误

java - 初始化字符数组时出现精度损失错误

c++ - 在 switch case 语句中初始化数组

python - 如何将 Python 转义字符与 MatLab 命令结合起来?

matlab - 不同窗口的输出

python - 如何计算ndarray中元素的频率

python - 在 numpy 对象数组中搜索

c++ - 从Octave CLI构建mex文件