Saving a uitable to text file with variable number of columns

Hi. I have a uitable that I populate with a variety of functions, each one has a different number of columns and colnames. I want to have a generic save function that will save regardless of the columns, and one where I can add the column names as a variable. This is my fixed column name approach. How do i adapt this for variable columns and column names.
%Save UI Table
tabledata = num2str(get(handles.uitable1,'data'));
fpath=get(handles.edit1,'String'); %get filepath from edit box
fname=get(handles.textFile,'String'); %get file name
ffull=[fpath,fname];
filename = 'C:\Output.txt';
fid = fopen(filename, 'w');
fprintf(fid, '%s\r\n', ffull);
rows=length(tabledata);
fprintf(fid,' %s %s %s %s %s %s %s\t\r\n', 'mean','mode','max','min','sd','min20','Dyn Range') %this part I want to be variable!!!!
for i = 1:rows
%tabledata(i,:)
% fprintf(fid, '%s\t %s\t %s\t %s\t %s\t %s\t %s\t \n', tabledata(i,:));
fprintf(fid, '%s\r\n', tabledata(i,:));
% fprintf(fid, '\r\n')
end
fclose(fid);
I also need to add that my table consists ofa mixture of strings and numbers by using a cell array.

 Accepted Answer

You can use one of the many tools to export a cell to a text file from the file exchange:

2 Comments

I need to include the headers too
@Jason: Writing the headers to a text file is easy. Afterwards you can use one of the tools from the FEX to append the data.

Sign in to comment.

More Answers (1)

Ok, I have made some progress: Im still not able to assign the colnames properly though the the T??
tabledata = (get(handles.uitable1,'data'));
colnames=get(handles.uitable1,'columnname')
T = cell2table(tabledata,'VariableNames',colnames);
writetable(T,'output.dat')
I get the following:
colnames =
'File' 'mean(FG)' 'max(FG)' 'mean(BG)' 'Objects'
Error using cell2table (line 69)
'mean(FG)' is not a valid variable name.

Categories

Asked:

on 26 Sep 2016

Commented:

Jan
on 28 Sep 2016

Community Treasure Hunt

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

Start Hunting!