我需要一些帮助来在 Matlab 中创建数据结构。到目前为止,我需要以下内容:
string1 value1
string2 value2
string3 value3
等等。我为此使用了一个结构:
mystruct = struct('mystrings', {}, 'myvalues', {});
除了字符串和值之外,现在我还需要为我的字符串值对分配几个数组(列向量,仅包含数字)。它可以是不同的,有多少数组被分配给一个字符串值对,例如
string1 value1 [1;2] [1;3]
string2 value2 [9;10]
string3 value3 [3;4] [2;9] [0;3]
我不知道如何创建这样的数据结构。如果它现在是错误的数据结构,那么完全摆脱结构对我来说可能不是问题。不过,我需要有关创建新数据结构的帮助。感谢您的帮助:-)
最佳答案
在考虑“正确”的数据结构时总是有很多选择。一些选项:
您可以为结构的每个字段分配一个元胞数组。
你会写这样的结构:data.field1{1} = 'a string'; data.field1{2} = [1 2 3 4]; data.field1{3} = [5:2:10]; data.field2{1} = 'another string'
你会这样读:
allValueInACellArray = data.field1; onlyTheThirdValue = data.field1{3};
您可以使用嵌套结构。
然后写入看起来像这样:data.field1.name = 'some name'; data.field1.firstarray = [1 2 3 4]; data.field1.secondarray = [5:2:10]; data.field2.name = 'another name';
读起来是这样的:
justTheFirstName = data.field1.name; onlyTheSecondArray = data.field1.firstArray;
我经常使用的另一个结构是结构数组。
将其与单元格值字段相结合,写入看起来像:data(1).name = 'some name'; data(1).arrays = {[1 2 3 4] 5:2:10}; data(2).name = 'another name'; data(2).arrays = {[5 6 7 8] 6:3:12};
通常没有正确答案。对于小程序来说,这并不重要,你应该选择你觉得最自然的东西。对于性能受限的应用程序,您需要考虑高效的内存分配以及以您通常需要访问数据的方式快速访问数据等问题。
关于matlab - 在 Matlab 中创建更复杂的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217041/