[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

原文地址:https://www.cnblogs.com/clemente/p/9597286.html

时间: 2024-08-30 17:24:46

[matlab] 17.网格矩阵的相关文章

CST.Studio.Suite.2016.SP1 电磁仿真+Mathworks.Matlab.R2016a.X64 矩阵实验室

Mathworks.Matlab.R2016a.X64 矩阵实验室 PV.Desktop.V14.0.0.1 石油化工静设备计算机辅助设计桌面系统 Agilent.Keysight.ICCAP.2016.01 Agilent.Keysight.Genesys.2015.08 Agilent.Keysight.WaferPro.Express.2015.01 Agilent.Keysight.Model.Quality(MQA).2016.01 诚信合作,质量保证:@@@@@@@@@@@@@@@@

Matlab随笔之矩阵入门知识

直接输入法创建矩阵 – 矩阵的所有元素必须放在方括号“[ ]”内: – 矩阵列元素之间必须用逗号“,”或空格隔开,每行必须用“;”隔开 – 矩阵元素可以是任何不含未定义变量的表达式.可以是实数,或者是复数. – 例a=[1,2;3,4] 或 a=[2 1+3j;sqrt(4) 5] 创建基本矩阵的函数 – 空阵 [ ] — matlab允许输入空阵,当一项操作无结果时,返回空阵 – ones(N,M) —全部元素都为1的矩阵 – zeros(N,M) —全部元素都为0的矩阵 – rand(N,M

Matlab permute( )函数 & 矩阵A 和矩阵A' 的差别 & imresize( )函数

Matlab  图像处理 Day9: 1.permute( ): % permute 函数功能是重新排列数组,可以交换数组的维数 % 对于二维数组而言.可以利用 permute 函数对矩阵进行转置 Sample: 2.矩阵A 和矩阵A'之间的差别: A' 是举证 A 的转置矩阵. 3.imresize( ): % 函数用于缩放处理 % 其一般形式为  <i> B = imresize(A, m) B矩阵的长宽变成A矩阵的m倍,若 m > 1 ,则 B 为 A 的放大图像 若 m <

numpy的生成网格矩阵 meshgrid()

numpy模块中的meshgrid函数用来生成网格矩阵,最简单的网格矩阵为二维矩阵 meshgrid函数可以接受 x1, x2,..., xn 等 n 个一维向量,生成 N-D 矩阵. 1 基本语法 meshgrid(*xi, **kwargs) 参数: xi - x1, x2,..., xn : array_like 返回值: X1, X2,..., XN : ndarray 2 示例 2.1 一个参数时 import numpy as np a = [1,2,3] b = np.meshgr

Matlab中求解矩阵的奇异值

1.Matlab中求解矩阵的奇异值用svd函数和svds函数 2.实例 >> A = [1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 >> svd(A) ans = 16.8481 1.0684 0.0000 >> svds(A) ans = 16.8481 1.0684 0.0000 再分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn

MATLAB——第二天 矩阵

写在前面 我们都知道,在没有持久化存储的情况下,大部分的数据是存储在数组里面的, 也就是对应于数学中的矩阵, 对于一个矩阵而已,最重要的不外乎:赋值,操作,取值 初始化矩阵 在MATLAB里给一个矩阵赋值的方法有很多,有直接赋值法.借助函数库的间接赋值法, 有时候还要生成一个在某个区间内的随机矩阵 一.直接赋值法: >> A =[1,2,3,4] A = 1 2 3 4 >> A= [1:1:4] A = 1 2 3 4 >> A=[1;2;3;4] A = 1 2 3

matlab fprintf输出矩阵

a=[1,2,3;4,5,6]  是一个2×3矩阵1 2 34 5 6 fid=fopen('d:\chr.txt','wt')  本命令用法网上可以查到,帮助文件里讲的也很清楚 fprintf(fid,'%8.4f %8.3f %6.2f\n',a')     输出矩阵 fclose(fid)   关闭文件 讲一下fprintf命令中每一项的含义: fid    函数句柄,代表之前打开的文件'%8.4f %8.3f %6.2f\n'      输出格式,具体如下:        1.%8.4f

Matlab中关于矩阵维度的解释

a = ???? 1???? 1???? 1???? 1???? 1 ???? 1???? 1???? 1???? 1???? 1 ???? 1???? 1???? 1???? 1???? 1 就上面这样一个矩阵而言,它有3行5列 第一维:行维,即行向,也即垂直方向,维数为3,就矩阵a而言 第二维:列维,即列向,也即水平方向,维数为5 第三维:页,类似课本的一页一页,每一页是个平面,可以放一个类似a的二维矩阵 第四维:没有其他名字了,就是一个抽象的概念 第五维:类似第四维, .. 假设我利用on

Matlab实现二进制矩阵转换为十进制

一.问题描述 [1 1 1 0 1 0 1 1 0 1 0 0 1 1 0] 每两位3转换为一个十进制数,共5列,那么转换后是ceil(5/3)=2列. [7 1 6 1 1 2] 二.问题分析 1.每八个字符划分为一个十进制,nwords=ceil(size(b,2)/8) 2.按列处理每行的字符,只不过1到8是一组,为第一列:9到17是二组,为第2列. cb = zeros([size(b,1),nwords],'uint8') for(j=1:size(b,2)) { w = ceil(j