Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
这在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与它们cellfun使用。我发现自己经常使用单元格将数据保留在函数中,但使用结构(或对象)在函数之间传递数据。 另外,如果您有一个数字列表,并且想要将它们分配给单元格数组的元素,则可以使用num2cell ,它将数组的每个元素分别放入单元格数组的元素或mat2cell ,以防万一。不均匀地拆分数组。 a = {1,[2 3]} 相当于 b = mat2cell([1 2 3],[1 1],[1 2]); 更多&回答... |
![]() |
![]() |