互动网格

时间:2014-01-21 03:51:50

标签: matlab grid interactive

我正在尝试在MATLAB中创建一个网格。

用户在运行时输入网格的行数和列数。

当用户点击网格的特定块/方块时,

  1. 我需要获取块的坐标(即(1,1)(2,3)等。)

  2. 我还需要为那个方块/块着色。

  3. 有关我如何做的任何建议吗?

1 个答案:

答案 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