博主是光学专业,经常在MATLAB中做光学的仿真,而光栅是我们经常用到的光学元件,所以要经常绘制,在这里分享一下一维光栅的四种画法,适用于初学者,画法纯属原创,仅作参考。编译环境MATLAB2014a

下面是光栅参数,图像大小500*500,a为缝宽,d为光栅常数

r = 500 ;c = r ; d = 10; a = 6;

下面是第一种画法:

U1(1,:) = 1

U1(1 + 1*d,:) = 1

U1(1 + 2*d,:) = 1

..............

U1(1 + (c/d - 1)*d,:) = 1

U1(2,:) = 1

U1(2 + 1*d,:) = 1

U1(2 + 2*d,:) = 1

............

U1(2 + (c/d - 1)*d,:) = 1

U1(a,:) = 1

U1(a + 1*d,:) = 1

U1(a + 2*d,:) = 1

依次类推..........

U1(a + (c/d - 1)*d , :) = 1

可写出一下程序

U1  = zeros( c , r );
for i = 1 : 1  : afor j = 0 : 1 : ( c / d -1)U1(i + j * d , : ) = 1;end
end
figure , imshow (U1);

显然方法有点复杂,需要两个for

下面介绍第二种:

光栅中每条缝一块画出,如下所示

U2(1:a ,:) = 1

U2(1+d:a+d ,:) = 1

U2(1+2*d:a+2*d ,:) = 1

U2(1+(c / d - 1 )*d:a+(c / d - 1)d ,:) = 1,程序如下

U2  = zeros( c , r );
for m = 0 : 1 : ( c / d -1)U2( 1 + m * d : a + m *d , : ) = 1;
end
figure , imshow(U2);

第三种方法,再次更新,把光栅常数d放到for中,这样更直观(因从0开始,所以为c-1)

U3  = zeros( c , r );
for n = 0 : d : c-1U3( 1 + n : a + n , : ) = 1;
end
figure , imshow(U3);

第四种方法,使遍历的参量从1开始,也是为了更直观,但这就要求循环中a-1

U4 = zeros( c , r );
a = a -1 ;
for n = 1:d:cU4(n:n+a,:) = 1;
end
figure , imshow(U4);

如果需要二维光栅只需要在列方向在添加一组就可以了。

通过四种方法,在MATLAB中画一维光栅相关推荐

  1. C#四种方法调用类中的函数

    方法一 using System; using System.Collections.Generic; using System.Text; namespace Exp04_1 {class Prog ...

  2. c语言中字符串去掉逗号,JS四种方法去除字符串最后的逗号

    window.οnlοad=function() { var obj = {name: "xxx", age: 30, sex: "female"};//定义一 ...

  3. java indexof 子字符串_Java中字符串中子串的查找共有四种方法(indexof())

    Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现的指定子字符串在此 ...

  4. 电脑软件删除了还能恢复吗?四种方法帮助恢复

    电脑软件删除了还能恢复吗?答案是可以的,那么电脑里删掉的软件怎样找回来呢?小编在这里介绍四种方法恢复电脑中删除的软件,分别是重新下载安装.回收站还原.电脑备份还原以及借助第三方软件恢复,具体内容可仔细 ...

  5. matlab中单独存图_Matlab中图片保存的四种方法

    Matlab 中图片保存的四种方法 matlab 的绘图和可视化能力是不用多说的, 可以说在业内是家喻户晓的. Matlab 提供了丰富 的绘图函数,比如 ez** 系类的简易绘图函数, surf . ...

  6. matlab图像拼接融合(四种方法)

    matlab图像拼接的四种方法  1.直接拼接,  2.亮度调整后拼接,  3.按距离比例融合,  4.亮度调整后按距离比例融合 流程: 1.读入左,右图,并取出重合部分,并转化为亮度图 2.分别把每 ...

  7. 用MATLAB结合四种方法搜寻罗马尼亚度假问题

    选修了cs的AI课,开始有点不适应,只能用matlab硬着头皮上了,不过matlab代码全网仅此一份,倒有点小自豪. 一.练习题目 分别用宽度优先.深度优先.贪婪算法和 A*算法求解"罗马利 ...

  8. python画波浪线_PPT绘制波浪线的四种方法

    在开始学习教程前,先欣赏两幅画.画面中的波浪线使用的恰到好处,给整个画面增添张力与活力.那么用PPT能绘制出柔美的波浪线吗?答案当然是肯定的!一共四种方法,本文图文详解使用PPT绘制波浪线的四种方法. ...

  9. 单一修改高程值lisp_浅谈AutoCAD中修改高程的四种方法

    浅谈 AutoCAD 中修改高程的四种方法 摘 要: 在使用 AutoCAD 进行数字化成图工作中,经常遇到线划的标高不为零,及高程点的值与实地不符,需要对其进行修改等情况,结合实 际工作经验,简单介 ...

  10. Simulink中构造时变传递函数的四种方法

    1. 原由 传递函数是针对线性时不变(Linear Time-Invariant,LTI)系统定义的,严格来说,时变传递函数的说法并不十分严谨.但 "时变"和"非线性&q ...

最新文章

  1. 暮色森林模组_我的世界怎样进入暮色森林
  2. python tkinter button颜色变不了_更改函数中Tkinter按钮的颜色
  3. python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题
  4. mysql日期格式化季度_mysql中常用日期比较与计算函数
  5. TypeScript里的空值合并运算符(双问号)用法
  6. mysql去除空格的函数_MySQL字符串尾部空格匹配的问题
  7. .Net Core应用框架Util介绍(一)
  8. java 字符串第一个字符_深入Java源码剖析之字符串常量
  9. Nvidia League Player:来呀比到天荒地老
  10. seL4操作系统基础02:从Hello World开始
  11. Gccgo in GCC 4.7.1[翻译]
  12. 有了malloc/free为什么还要new/delete ?
  13. switch -case 理解
  14. ZStack实践汇 | 快照和备份的区别
  15. 如何深入学习Android系统
  16. Ubuntu锐捷校园网连接不上问题,认证成功但是上不去网。
  17. linux终端哪个好看,关于linux:Linux-终端最全推荐建议收藏
  18. 两阶段网络DEA及其计算
  19. android虚拟按键趋势,为什么Android虚拟按键老被吐槽但却有厂商坚持在做?
  20. 关于NFT的版权的保护认证

热门文章

  1. 企业如何利用OA系统轻松管理员工请休假
  2. Word文件标尺工具不见了,怎么恢复
  3. vue直播rtmp流
  4. 【深度学习】CRNN 文字识别端对端模型 CTC损失
  5. 分区分服游戏框架设计
  6. 简单振动测试系统软件,振动测试系统
  7. MySql优化面试题
  8. 惯量比多少合适_惯量比折算问题
  9. python用什么数据库比较好_Python和主流数据库
  10. 密度聚类算法python详解_密度聚类python