gpt4 book ai didi

matlab - 访问结构数据(matlab)

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:58 25 4
gpt4 key购买 nike

a= struct('a1',{1,2,3},'a2',{4,5,6})

如何获取1的值;

我尝试使用返回错误的 a.a1{1}

>> a.a1{1}
??? Field reference for multiple structure elements that is followed by more reference blocks is an
error.

如何访问 1?谢谢。

编辑A = struct{'a1',[1 2 3],'a2',[4 5 6]}

我如何访问 1. 我使用 A(1).a1 但我得到 1 2 3

最佳答案

你必须这样做:

a(1).a1

原因是因为您用来创建结构的代码实际上创建了一个 3 元素结构数组,其中第一个数组元素包含 a1: 1a2: 4,第二个数组元素包含a1:2a2:5,第三个数组元素包含a1:3a2 : 6

当您在调用 STRUCT 时使用花括号 {}与您所做的一样,MATLAB 假定您想要创建一个结构数组,在该数组中您将单元格的内容分布在结构数组元素中。相反,如果您想要创建单个 1×1 结构元素,其中的字段包含元胞数组,则必须添加一组额外的大括号括起您的元胞数组,如下所示:

a = struct('a1',{{1,2,3}},'a2',{{4,5,6}});

然后您的原始 a.a1{1} 将起作用。

编辑:

如果您使用数值数组而不是元胞数组创建结构,如下所示:

A = struct('a1',[1 2 3],'a2',[4 5 6]);

然后你可以访问1的值如下:

A.a1(1)

有关在 MATLAB 中使用结构的更多信息,请查看 this documentation page .

关于matlab - 访问结构数据(matlab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5044452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com