从uitable matlab GUI中保存用户输入?

时间:2013-06-26 14:03:25

标签: matlab user-interface user-input matlab-uitable

我正在创建一个GUI(不使用GUIDE) 我正在寻找一种方便用户输入数据的方法。我认为uitable是理想的,除非我似乎无法弄清楚如何从表中存储用户输入。 我宁愿不使用celleditcallback功能 - 理想情况下,我想使用保存按钮或类似设备一次性保存数据,任何想法? 表的代码(这是在它自己的函数中):

dat =  {0,  0,  0, true;...
        0,  0,  0, true;...   
        0,  0,  0, true;};
columnname =   {'x-pos', 'y-pos', 'dimns', 'Include?'};
NC = numel(columnname);
rowNumber = zeros(NR,NC);
columnformat = {'numeric', 'numeric', 'numeric','logical'};
columneditable =  [true true true true true];
rowname = {'Dat1','Dat2','Dat3'};
Config = uitable('Units','normalized','Position',[0 0 0.2 0.4],...
            'Data', dat,... 
            'ColumnName', columnname,...
            'ColumnFormat', columnformat,...
            'ColumnEditable', columneditable,...
            'RowName',rowname);
cell2mat(dat(:,1:3));
gh =get(Config,'Data');

提前感谢任何建议

1 个答案:

答案 0 :(得分:1)

我认为最重要的是你需要在函数结束时以及在将表数据分配给输出之前使用waitfor(gcf)。

看看这个例子:

function [out1]=myGUIwithATable(inputs..)

myTable=uitable(.......)

waitfor(gcf) 

%This command will wait until you close the GUI before doing the code after 
% it. We use this to allow you to enter all your data and whatnot, then once  
% you close the fig, it will execute your save commands

out1=get(myTable,'Data');

这样^^^就是如何将输出变量分配给表值

通过按钮保存非常简单。在按钮回调中,只需执行

save('fileName.mat',get(myTable,'Data'))

希望有所帮助!