У меня есть таблицаMATLAB: Копирование переменных из таблицы на структуру на основе определенных критериев
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
и массив STRUCT
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 []
структура массива S
содержит критерии, необходимые, чтобы выбрать переменную из таблицы T
. Как только переменная выбрана, ее необходимо скопировать из таблицы T
в пустое поле в структуре S
.
S(1).rownamefield
содержит имя строки в таблице T
, где находится целевая переменная. S(1).columnnumberfield
содержит номер столбца в таблице T
с целевой переменной. Таким образом, S(1).rownamefield
плюс S(1).columnnumberfield
являются практически координатами целевой переменной в таблице T
. Мне нужно скопировать целевую переменную из таблицы T
в поле3 в массиве struct: S(1).field3
. Это должно быть сделано для всех структур, поэтому, возможно, это должно быть в цикле for, но я не уверен.
Вывод должен выглядеть следующим образом:
rownamefield columnnumberfield field3
1 'name3' 1 33
2 'name1' 3 77
3 'name2' 2 55
Я не знаю, как подойти к этой задаче. Это, конечно, упрощенная версия проблемы. Моя реальная таблица данных - 200x200, а массив struct имеет более 2000 структур. Я буду очень признателен за любую помощь в этом.
Нужно ли придерживаться структуры? Вы решаете, как хранить эту информацию. Я лично никогда не использую массивы структуры, такую боль, с которой приходится иметь дело. – Oleg
Я только выяснил, как хранить данные в структурах и таблицах. У меня много наборов данных, поэтому я помещаю их в вложенные структуры. Я не могу поместить таблицу в таблицу (или я могу?), Поэтому мне нужно использовать структуру на каком-то уровне. Мне было легче работать с вложенными структурами, чем с таблицами внутри структур. Возможно, есть еще один способ связать все это вместе, но я не знаю об этом. –
Ваши данные выглядят скалярными, поэтому я не вижу необходимости в структуре вместо таблицы (возможно, ваши реальные данные сложнее) – Oleg