matlab中结构值的提取

matlab中结构值的提取,matlab,struct,Matlab,Struct,我有一个问题,如果我们有三维结构,并且每个字段有7个值,那么如何分别从该结构的每个字段提取每个值。只需使用索引: >> s(1,1,1).data = [1 2 3 4]; >> s(1,1,2).data = [10 20 30 40 50]; %// example struct >> s(1,1,2).data(3) ans = 30 >> s(1,1,2).data(2:4) ans = 20 30 40 另外

我有一个问题,如果我们有三维结构,并且每个字段有7个值,那么如何分别从该结构的每个字段提取每个值。

只需使用索引:

>> s(1,1,1).data = [1 2 3 4];
>> s(1,1,2).data = [10 20 30 40 50]; %// example struct
>> s(1,1,2).data(3)
ans =
    30
>> s(1,1,2).data(2:4)
ans =
    20    30    40

另外,最好不要使用
struct
作为变量名,因为
struct
是一个内置函数。

您能再解释一下三维结构吗?你是说结构有3个字段吗?如果你有一些示例代码来创建你所引用的结构,那就太好了。不,我的结构是(3*3*3),字段名为bit。因此,我的结构有27个字段。在每个字段中,我有7个值。我想从这些字段中分别提取这些值。为什么不给我们一个结构示例?指向mat文件或某物的链接。例如,如果我为示例结构(1,1,2)编写。数据=数据:[1 2 3 5 6 0 9]或结构(1,1,3)。数据=数据:[3 4 0 11 23 6 9]。但我想在调用struct(1,1,3)时对代码进行一些修改。我可以分别获得3、4、0、11、23、6或9的数据。因为我想用这个结构的其他维度的字段的相应值分别添加它们,但是,如果您尝试执行
s(1,1,:).data(1)
,您将得到一个错误(至少我在八度音程中是这样做的)。据我所知,这正是OP想要做的,特别是考虑到他/她之前关于同一主题的问题:。比你,路易斯,但我想要另一件事。我找到了它:
对于I=1:3对于j=1:3对于l=1:2b=[支柱(I,j,l).data];结束
@am304我明白了。使用ND数组而不是结构,所有这些都会简单得多。我是初学者,但我的数据是结构,我需要在代码的下一部分以结构形式使用它。我必须使用结构。我不知道什么是ND数组。