如何在Matlab中为矩形网格右侧底部两个矩形设置不同颜色
给Matlab矩形网格指定区域设置填充色
你的脚本通过批量生成平移后的矩形创建网格,默认统一设置了填充色。要给右侧底部两个矩形改颜色,关键是找到这两个矩形在数组里的位置,单独绘制它们即可:
修改后的完整代码
rH = 13500; % 区块高度 [um] rL = 15000; % 区块长度 [um] H = 2250; % 矩形高度 [um] L = 5000; % 矩形长度 [um] % 计算网格的列数和行数,方便后续定位目标矩形 num_cols = ceil(rL/L); num_rows = ceil(rH/H); % 生成单个矩形模板 rect_template = scale(nsidedpoly(4,'Side',1,'Center',[+1,+1]/2),[L,H]); % 先生成纵向的一列矩形,再平移生成所有列 col_array = arrayfun(@(i)translate(rect_template,H*[0,i]),0:num_rows-1)'; Grid = arrayfun(@(i)translate(col_array,L*[i,0]),0:num_cols-1,'UniformOutput',false); Grid = vertcat(Grid{:}); % 先绘制所有矩形为白色 plot(Grid,'FaceColor','w'); axis equal; hold on; % 定位右侧底部的两个矩形:最后一列的最底部两行 target_idx1 = (num_cols-1)*num_rows + 1; target_idx2 = (num_cols-1)*num_rows + 2; % 单独绘制这两个矩形,设置自定义填充色 plot(Grid(target_idx1),'FaceColor','r'); % 示例:红色 plot(Grid(target_idx2),'FaceColor','b'); % 示例:蓝色 hold off;
关键逻辑说明
- 先通过
num_cols和num_rows明确网格行列数,避免硬算索引出错 - 网格数组
Grid的顺序是从左到右、从下到上排列,最后一列的最底部两个矩形对应公式计算出的索引 - 先统一绘制所有白色矩形,再单独绘制目标矩形,新填充色会覆盖原有颜色
内容的提问来源于stack exchange,提问作者jam_27
相关产品推荐
相关产品推荐

