matlab - 在 Matlab 中创建更复杂的数据结构?

标签 matlab data-structures structure

我需要一些帮助来在 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]

我不知道如何创建这样的数据结构。如果它现在是错误的数据结构,那么完全摆脱结构对我来说可能不是问题。不过,我需要有关创建新数据结构的帮助。感谢您的帮助:-)

最佳答案

在考虑“正确”的数据结构时总是有很多选择。一些选项:

  1. 您可以为结构的每个字段分配一个元胞数组。
    你会写这样的结构:

    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};
    
  2. 您可以使用嵌套结构。
    然后写入看起来像这样:

    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;
    
  3. 我经常使用的另一个结构是结构数组。
    将其与单元格值字段相结合,写入看起来像:

    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/

相关文章:

matlab - 从大 mat 文件中读取变量

data-structures - 在 Scala 中扩展现有的数据结构

javascript - 引用 javascript 对象文字数组

ios - 如何在模型对象中存储许多图像? Objective-C

c++ - 指针类型在结构内的对象类型上的用法是什么?

eclipse - 我如何将 MATLAB 与 Eclipse 集成

Matlab R2014 从 colormapeditor 保存颜色图时出现问题

matlab - 当未明确知道输入参数的数量时,使用可变数量的输入参数调用函数

algorithm - 了解速度并实现 Boids 算法?

c - C 中结构变量的动态名称