f = figure('Position',[200 200 400 150]);
dat = rand(3);
cnames = {'X-Data','Y-Data','Z-Data'};
rnames = {'First','Second','Third'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,...
'RowName',rnames,'Position',[20 20 360 100]);
然后,你可以通过修改执行过程中的列名:
cnames = {'Z-Data','Y-Data','X-Data'};
set(t,'ColumnName',cnames);
剩下的唯一东西是决定哪个事件将触发此修改并编写适当的回调函数。如果你可以提供关于GUI的一些细节,它可能是有用的。
如果您正在构建通过引导你的图形用户界面,我不知道是否有可能(我想是这样,但我一般喜欢以避免GUIDE所以我所知在这方面的限制)。
UPDATE:
作为一个例子,我写一小块代码表示这个动作。在这种情况下,触发列名称更改的事件是一个按钮,但它可能是任何东西,希望这有助于。
% GUI
function so_uitable
% Layout
figure('units','normalized','position',[0.1 0.1 0.5 0.5],'tag','figure');
data=guihandles(gcf);
uitable('parent',,'units','normalized', ...
'Position', [0.1 0.1 0.35 0.8],'tag','table');
uicontrol('style','pushbutton','string','Change columns names', ...
'parent',,'units','normalized', ...
'Position',[0.55 0.8 0.35 0.1],'tag','button', ...
'callback',@button_callback);
data=guihandles(gcf);
% Data
=rand(3);
={'X-Data','Y-Data','Z-Data'};
set(,'data',,'ColumnName',);
guidata(gcf,data);
end
% Callback
function button_callback(obj,event)%#ok
data=guidata(gcbf);
n=length();
prompt=cell(n,1);
answer=inputdlg(prompt,'Change columns names',1,);
if(~isempty(answer))
=answer;
set(,'ColumnName',);
end
guidata(gcbf,data);
end