0
我想在MATLAB中创建一个网格。交互式网格
网格的行数和列数由用户在运行时输入。
当用户点击在网格上的一个特定块/平方,
我需要获取块的坐标(即
(1,1)
,(2,3)
等)我还需要为该方块/块着色。
有关我该如何做的任何建议?
我想在MATLAB中创建一个网格。交互式网格
网格的行数和列数由用户在运行时输入。
当用户点击在网格上的一个特定块/平方,
我需要获取块的坐标(即(1,1)
,(2,3)
等)
我还需要为该方块/块着色。
有关我该如何做的任何建议?
,可作为首发:
% draw a rectangle
% store coordinates in the userdata
r = rectangle('Position', [1 1 1 1], 'UserData', [1,1], 'FaceColor', 'r');
% set the clicked-callback:
set(r, 'ButtonDownFcn', @showIndex);
function showIndex(hObject, evt)
disp('Clicked on:');
disp(get(hObject, 'UserData'));
end
[代码语法编辑]
编辑:
关于坐标: 当然你也可以使用自己的坐标,想必你得到一个类似于这样的循环:
for ix=1:n % loop over columns
for iy=1:m % loop over rows
% modify coordinates to your needs
% e.g. to make the y-index start at 1 from top to bottom:
coords = [ix,m-iy+1];
r(ix,iy) = rectangle('Position', [ix,iy,1,1], 'UserData', coords, ...);
% remaining stuff...
end
end
所以你建议我创建用户输入的许多矩形?例如,如果用户输入他想要一个5x5网格,我应该创建25个矩形? – Dinesh
我试图创建多个矩形,但坐标'(1,1)'从左下方开始,而不是左上方。有关如何处理这种情况的任何建议。 – Dinesh
看到我上面的编辑 - 你可以根据你自己的坐标系统自由设置'UserData'。 – sebastian