[matlab] 17.网格矩阵

Posted clemente

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[matlab] 17.网格矩阵相关的知识,希望对你有一定的参考价值。

生成网格矩阵,并且根据条件筛选,重新赋值为0,1二值图像

技术分享图片
clear all;close all;
%生成二值图
index= randperm(2500,1000);  %生成10个不重复随机指标
Z= ones(50,50); %默认白底
Z(index) = 0; %随机指标处黑底
imagesc(Z); 

cmap = [0 0 0;1 1 1]; %自定义一个colormap
colormap(cmap);
axis square;
方法1

技术分享图片

技术分享图片
n=5;%方阵行列数
c=10;%填充c个方格
t = zeros(1,n*n);
list = randperm(n*n);%生成随机数,不重复
list = list(1:c);%取前c个
t(list) = 1;%填充
t = reshape(t,[n n])
m=5;v=5;
for x=1:m
    for y=1:v
        if t(x,y)==1
            fx=[x-1,x-1,x,x];
            fy=[y-1,y,y,y-1];
            fill(fx,fy,k);
            %fill将点[x1,y1],[x2,y2],[x3,y3],[x4,y4]按序连线,后形成的图像进行填充,参数‘g’表示绿色。
            %[x1,y1],[x2,y2],[x3,y3],[x4,y4]对应写成[x1 x2 x3 x4][y1 y2 y3 y4],hold on表示画在一幅图上。
            hold on
        else
        end
    end
end
[x,y]=meshgrid(0:5); %产生网格数据。
plot(x,y,k,y,x,k); %画横线,画竖线。
axis equal; % 保证网格是方格。
axis([0 5 0 5]); %设置显示范围。
set(gca,xtick,[1:5]);
set(gca,ytick,[1:5]);
grid on
grid minor
方法2

技术分享图片

技术分享图片
clc
clear
close all;

n=10;%方阵行列数
c=10;%填充c个方格
cmap = [0 0 0;1 1 1]; %自定义一个colormap
indic = randperm(n*n,c);  %生成10个不重复随机指标
img = ones(n,n); 
img(indic) = 0;
imagesc(img);
colormap(cmap);
[x,y]=meshgrid(0.5:n+0.5); %产生网格数据。
hold on
plot(x,y,k,y,x,k); %画横线,画竖线。
set(gca, XTick,1:n, YTick,1:n);
hold off
方法3

技术分享图片

 

以上是关于[matlab] 17.网格矩阵的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何将多个矩阵保存到同一个矩阵中?

在Matlab中创建一个平滑的网格

matlab mashgrid 函数

C++-实现matlab的meshgird(OpenCV)

matlab编程处理矩阵

单独的3D矩阵像numpy