Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 交互式网格_Matlab_Grid_Interactive - Fatal编程技术网

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'); %

我试图在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个矩形吗?我尝试创建多个矩形,但坐标
    (1,1)
    从左下角开始,而不是从左上角开始。关于如何处理这种情况的任何建议。请参阅我上面的编辑-您可以根据自己的坐标系自由设置“UserData”。这很有效!如何在每个正方形/矩形中绘制两条对角线,并在4个分区中的每个分区中放置一个文本。请查看
    文本
    上的文档。您只需计算4条边的坐标和矩形的中心,即可绘制直线和中心对齐的文本。