我想知道是否可以在matlab中拖动模式值。在电子表格中,要输入1到50之间的值,您需要输入1,2,3并选择单元格并拖动。请问这可以在matlab中完成吗?问候。
答案 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
它创建一个包含两列的表:
您可以选择数据,并根据第一个值立即应用所需的拖动模式。
代码只是根据相应值在第一个选择点插入一系列增加的值。 最困难的部分是检测模式!我刚刚评估了第一个数据值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
。