Matlab 交互式网格
我试图在MATLAB中创建一个网格 用户将在运行时输入网格的行数和列数 当用户单击网格的特定块/正方形时Matlab 交互式网格,matlab,grid,interactive,Matlab,Grid,Interactive,我试图在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'); %
(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个矩形吗?我尝试创建多个矩形,但坐标
(1,1)
从左下角开始,而不是从左上角开始。关于如何处理这种情况的任何建议。请参阅我上面的编辑-您可以根据自己的坐标系自由设置“UserData”。这很有效!如何在每个正方形/矩形中绘制两条对角线,并在4个分区中的每个分区中放置一个文本。请查看行
和文本
上的文档。您只需计算4条边的坐标和矩形的中心,即可绘制直线和中心对齐的文本。