I have an array data2 which is 1×576 and I have a cell array called data2_txt which is also 1×576. I have giving a small example below (the arrays im using are much larger)
data2=[1,5,3,5,6;1,2,4,12,6];data2_txt={'Var1','Var2','Var3','Var4','Var5'}
Why do I get the error
Error using setVarNames (line 37)The VariableNames property must contain one name for each variable in the table.Error in table (line 305) t = setVarNames(t,vnames); % error if invalid, duplicate, or empty"
When I use the following syntax
Table1=table(data2,'VariableNames',data2_txt);
I am able to get this to work if I use a loop. But given previous criticism of using loops vs vectorization in MatLab I am trying to avoid doing so to keep the code quick. Below is the code I can get working using a loop which is not very efficient
table3=table(); for i=1:length(data2) table2a=table(data2(:,i),'VariableNames',data2_txt(i)) table3=horzcat(table3,table2a) end
Any advice or direction would be greatly appreciated.
Best Answer