How to do a code optimization for data export/import to uielements

Multi tool use
How to do a code optimization for data export/import to uielements
I have a gui with a uitable with a maximum of 30 rows and 30 edit-boxes. I what 2 specific things. 1) Export the cell array with the uitable strings (4 columns and 1–30 rows). Then I want the values of the 30 edit-boxes inserted in the cell array in column 5. 2) Finally I want to be able to load the exported cell array; the 4 first columns into the uitable and the 5th column into the edit-boxes. The code I have created (see below) is exporting/importing an excel sheet but it is very slow, even with only 5–7 rows in the uitable. How can I make this faster and more elegant. I doesn’t have to be an excel sheet. It can be a *.txt, *.cvs or something else (not *.mat).
% --- Dataset example
GUIstate = {
'REF20171002-2.txt' 'REF20171002-2' '217096907-1.txt' [217096907] [1]
'REF20171002-4.txt' 'REF20171002-4' '217096909-1.txt' [217096909] [3]
'REF20171002-4.txt' 'REF20171002-4' '217096911-1.txt' [217096911] ''
'REF20171002-4.txt' 'REF20171002-4' '217100125-1.txt' [217100125] [5]
'REF20171002-4.txt' 'REF20171002-4' '217100141-1.txt' [217100141] ''
}
% --- Save GUI state on pushbutton324.
function pushbutton324_Callback(hObject, eventdata, handles)
Folder=handles.Folder;
data = get( handles.uitable1, 'data');
data2 = data(:,[1:4]);
data3 = data2(~all(cellfun('isempty', data2(:, 3)), 2), :);
[r c]=size(data3);
num=r;
adj=cell(num,1);
for i = 1:num
adj{i,1}=get(handles.(sprintf('edit%d',i)),'String');
end
data3(:,5)=adj;
[filename, pathname] = uiputfile(fullfile(Folder, '*.xls'),'Save GUI file as');
newfilename = fullfile(pathname, filename);
xlswrite(newfilename,data3);
% --- Load GUI state on pushbutton325.
function pushbutton325_Callback(hObject, eventdata, handles)
Folder=handles.Folder;
[filename, pathname] = uigetfile(fullfile(Folder, '*.xls'));
newfilename = fullfile(pathname, filename);
[~, ~, data] = xlsread(newfilename,'Sheet1');
set( handles.uitable1, 'Data', data(:,1:4));
conc=data(:,5);
[r c]=size(data);
num=r;
for k = 1:num;
if isnan(conc{k})
conc{k} = '';
end
end
for i = 1:num
set(handles.(sprintf('edit%d',i)),'String',conc{i,1});
end
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.