MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   在Matlab中我应该使用什么来收集不同的对象? (https://www.labfans.com/bbs/showthread.php?t=24095)

poster 2019-12-10 20:48

在Matlab中我应该使用什么来收集不同的对象?
 
这在Matlab中是非法的

a = [[1];[2 3]] 在允许这样做的语言中,这称为嵌套数组。

我发现在Matlab中可以做到这一点:

a = {[1];[2 3]} 这个叫什么?如何以固定大小(例如100)初始化此类变量,而无需编写太多代码?



[B]回答:[/B]

它称为单元阵列。

您可以使用命令[URL="http://www.mathworks.com/help/techdoc/ref/cell.html"]cell[/URL]对其进行初始化

cellArray = cell(3,2); %# this makes a 3-by-2 cell array 存储不同对象集合的另一种方法是[URL="http://www.mathworks.com/help/techdoc/ref/struct.html"]struct[/URL] ,您可以像这样初始化

myStruct = struct('firstField',1,'secondField',[2 3]) 结构比单元格的优势在于字段是命名字段,这使得处理和记录文档变得容易得多。如果您想经常操作数据,单元格可以非常方便地存储数据,因为例如您可以将[URL="http://www.mathworks.com/help/techdoc/ref/cellfun.html"]cellfun[/URL]与它们[URL="http://www.mathworks.com/help/techdoc/ref/cellfun.html"]cellfun[/URL]使用。我发现自己经常使用单元格将数据保留在函数中,但使用结构(或对象)在函数之间传递数据。

另外,如果您有一个数字列表,并且想要将它们分配给单元格数组的元素,则可以使用[URL="http://www.mathworks.com/help/techdoc/ref/num2cell.html"]num2cell[/URL] ,它将数组的每个元素分别放入单元格数组的元素或[URL="http://www.mathworks.com/help/techdoc/ref/mat2cell.html"]mat2cell[/URL] ,以防万一。不均匀地拆分数组。

a = {1,[2 3]} 相当于

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

[url=https://stackoverflow.com/questions/4139498]更多&回答...[/url]


所有时间均为北京时间。现在的时间是 23:18

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.