在uitable matlab中拖动模式

时间:2014-01-02 08:58:58

标签: matlab matlab-uitable

我想知道是否可以在matlab中拖动模式值。在电子表格中,要输入1到50之间的值,您需要输入1,2,3并选择单元格并拖动。请问这可以在matlab中完成吗?问候。

2 个答案:

答案 0 :(得分:1)

可以做到。但不如excel那么舒服。

使用以下代码稍微玩一下,您可以尝试改进它或根据您的需要进行更改。我认为这是一个很好的起点。

function fancyTable 

defaultData = randi(99,25,2);

h = figure('Position',[300 100 402 455],'numbertitle','off','MenuBar','none');
uitable(h,'Units','normalized','Position',[0 0 1 1],...
              'Data', defaultData,... 
              'Tag','myTable',...
              'ColumnName', [],'RowName',[],...
              'ColumnWidth', {200 200},...
              'CellSelectionCallback',@cellSelect);
end

function cellSelect(src,evt)
try
index = evt.Indices;
data = get(src,'Data');
L = size(index,1);
rows = index(:,1);
column = index(1,2);
start = data(rows(1),column);
newdata = start:(start+L-1);
data(rows,column) = newdata';
set(src,'Data',data);
end
end

它创建一个包含两列的表:

enter image description here

您可以选择数据,并根据第一个值立即应用所需的拖动模式。


代码只是根据相应值在第一个选择点插入一系列增加的值。 最困难的部分是检测模式!我刚刚评估了第一个数据值start = data(rows(1),column);,您还可能需要最少的选择3:start = data(rows(1:3),column);。您可能需要使用大量try / catch结构来跳过所有无法解释的案例。或者您从头开始使用switch / case结构来评估选择的长度并评估模式。

总而言之,这是一项艰巨的任务,我不确定它是否值得。但它可以做到。

答案 1 :(得分:0)

uitable中插入要在表格中显示的数据(通常是矩阵)。因此,与Excel不同,uitable函数仅仅是显示数据的一种形式,而不是用于操作它的工具。有关详细信息,请参阅here。但是,如果要设置一行,例如从1到10运行,则可以使用以下步骤:

所以说想要显示大小为10x10的矩阵,例如 A=magic(10);

您现在可以设置表格t以通过

显示此矩阵

t=uitable('Data',A);

在您的情况下,如果您想要一行,例如1到10,只需更改包含您的数据的矩阵A以使用

保留此行

A(1,1:10)=1:10;

然后重新执行前一个命令以显示您的表t