Borrar filtros
Borrar filtros

Vertcat tables with structure variables with different fieldnames

19 visualizaciones (últimos 30 días)
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
Error using tabular/vertcat (line 218)
An error occurred when concatenating the table variable 'Var3' using vertcat.

Caused by:
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.
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?

Respuesta aceptada

Walter Roberson
Walter Roberson el 13 de Ag. de 2024 a las 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.
  1 comentario
Véronique Chouinard
Véronique Chouinard el 14 de Ag. de 2024 a las 0:46
Thanks! it works! I also ended up transforming the cell into a table after the loop because cell2table would revert the cell-structure into a structure

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by