【发布时间】:2021-04-30 09:10:39
【问题描述】:
我的问题是,您能否在一个函数中提取 MATLAB 中结构的一个字段名称。目前我正在这样做
sb = 3;
TestData.Name1 = [1 2 3];
TestData.Name2 = [4 5 6];
TestData.Name3 = [7 8 9];
TestData.Name4 = [10 11 12];
condition = fieldnames(TestData);
condition = condition{sb}
所以条件会出现
condition =
Name3
我想知道是否可以通过这样的方式做更多的事情
condition = fieldnames(TestData{sb});
不是一个需要解决的基本问题,但最好让代码更优雅一些
【问题讨论】:
-
obj.Model.TestData2是什么? -
它是一个 1x1 结构,包含 8 个 37295x1 双数组,我想要做的就是提取一个数组的名称,而无需分两行完成
-
请发布一个定义所有变量的最小示例,以便我们运行您的代码。当你这样做时让我知道,这样我就可以删除我的反对票
-
抱歉,我在这里提供了一个简化的例子 TestData.Name1 = [1 2 3]; TestData.Name2 = [4 5 6]; TestData.Name3 = [7 8 9]; TestData.Name4 = [10 11 12];某人= 3;条件 = 字段名(TestData)条件 = 条件{sb}
-
我现在知道你想做什么了。我想不出任何简单的方法可以根据需要直接索引。您可以将
subsref用作here,但这是一团糟。另外,您是否知道字段的顺序是创建顺序,因此可能不可靠?我的意思是,例如尝试test1.a = 10; test1.b = 20; test2.b = 20; test2.a = 10; fieldnames(test1), fieldnames(test2)