我想知道是否可以在 matlab uitable 中拖动模式值。在电子表格中,要输入 1 到 50 之间的值,您需要输入 1、2、3 并选择单元格并拖动。请问这可以在matlab uitable中完成吗?问候。
2 回答
可以办到。但不如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
它创建一个包含两列的表:
您可以选择数据并根据第一个值立即应用所需的拖动模式。
该代码只是根据相应的值在第一个选择点插入一系列增加的值。最难的部分是检测模式!我刚刚评估了第一个数据值start = data(rows(1),column);
,您可能还需要最少选择 3: start = data(rows(1:3),column);
。您可能需要使用大量try
/catch
结构来跳过所有无法解释的情况。或者您从一开始就使用switch
/case
结构来评估选择的长度并评估模式。
总而言之,这是一项艰巨的任务,我不确定是否值得。但这是可以完成的。
在uitable
您插入要在表格中显示的数据(通常是矩阵)中。因此,与 Excel 不同,该uitable
函数只是一种显示数据的形式,而不是一种操作数据的工具。请参阅此处了解更多信息。但是,如果您想设置一个从 1 到 10 运行的行,您可以使用以下步骤:
所以说一个人想显示一个大小为 10x10 的矩阵,例如
A=magic(10);
您现在可以设置一个表格t
来显示此矩阵
t=uitable('Data',A);
在您的情况下,如果您想要一行,例如 1 到 10,只需更改A
包含您的数据的矩阵以使用该行保存该行
A(1,1:10)=1:10;
并重新执行之前的命令来调出你的表t
。