我有一张桌子
column1data = [11; 22; 33];
column2data = [44; 55; 66];
column3data = [77; 88; 99];
rows = {'name1', 'name2', 'name3'};
T = table(column1data, column2data, column3data);
T.Properties.RowNames = rows
column1data column2data column3data
name1 11 44 77
name2 22 55 88
name3 33 66 99
和一个结构数组
S(1).rownamefield = 'name3';
S(2).rownamefield = 'name1';
S(3).rownamefield = 'name2';
S(1).columnnumberfield = 1;
S(2).columnnumberfield = 3;
S(3).columnnumberfield = 2;
S(1).field3 = [];
S(2).field3 = [];
S(3).field3 = [];
rownamefield columnnumberfield field3
1 'name3' 1 []
2 'name1' 3 []
3 'name2' 2 []
struct 数组S
包含从 table 中选择变量所需的条件T
。选择变量后,必须将其从 table 复制T
到 struct 中的空字段S
。
S(1).rownamefield
包含表T
中目标变量所在行的名称。包含表中具有目标变量S(1).columnnumberfield
的列的编号。T
所以S(1).rownamefield
plusS(1).columnnumberfield
实际上是 table 中目标变量的坐标T
。我需要将目标变量从表复制T
到结构数组中的 field3: S(1).field3
。这必须为所有结构完成,所以它可能需要在一个 for 循环中,但我不确定。
输出应如下所示:
rownamefield columnnumberfield field3
1 'name3' 1 33
2 'name1' 3 77
3 'name2' 2 55
我不知道如何处理这项任务。当然,这是问题的简化版本。我的真实数据表是 200x200,结构数组有超过 2000 个结构。对于这方面的任何帮助,我将不胜感激。