Vertcat tables with structure variables with different fieldnames
19 ビュー (過去 30 日間)
古いコメントを表示
Véronique Chouinard
2024 年 8 月 13 日 22:52
コメント済み: Véronique Chouinard
2024 年 8 月 14 日 0:46
Hello! I'm having troubles when creating a table within a loop because some table variables are structure arrays that have different fieldnames. I get the following error :
Error using vertcat : Names of fields in structure arrays being concatenated do not match. Concatenation of structure arrays requires that these arrays have the same set of fields.
Example of my code :
%Inputs
ExampleTable = table();
Orig_1 = struct('m4ADG','folder_1','Group','folder_group');
Orig_2 = struct('m5B0','folder_2','Group','folder_group');
item = {'charArray',[1 1 1], Orig_1; 'otherChar',[1 2 1], Orig_2};
%function
VarNames = {'Var1','Var2','Var3'};
for j = 1:size(item,1)
Var{1,1} = item{j,1};
Var{1,2} = item{j,2};
Var{1,3} = item{j,3};
NewTable = cell2table(Var);
NewTable.Properties.VariableNames = VarNames;
if isempty(ExampleTable)
ExampleTable = NewTable;
else
tmp = table2cell(NewTable);
ExampleTable = [ExampleTable; tmp];
end
clear NewTable Var
end
This whole thing runs within a class with the defined property ExampleTable as table and item, Orig_1|2 comes from elsewhere. Do you know how I can fix the problem?
0 件のコメント
採用された回答
Walter Roberson
2024 年 8 月 13 日 23:14
Use
Var{1,3} = item(j,3);
so that the third variable is a cell containing structures, instead of trying to concatenate structures directly.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で LaTeX についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!