我正在尝试在MATLAB中创建一个网格。
用户在运行时输入网格的行数和列数。
当用户点击网格的特定块/方块时,
我需要获取块的坐标(即(1,1)
,(2,3)
等。)
我还需要为那个方块/块着色。
有关我如何做的任何建议吗?
答案 0 :(得分:1)
这可以作为首发者:
% 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