通过四种方法,在MATLAB中画一维光栅
来源:互联网 发布:安卓数据导入iphone6s 编辑:程序博客网 时间:2024/05/18 21:06
博主是光学专业,经常在MATLAB中做光学的仿真,而光栅是我们经常用到的光学元件,所以要经常绘制,在这里分享一下一维光栅的四种画法,适用于初学者,画法纯属原创,仅作参考。编译环境MATLAB2014a
下面是光栅参数,图像大小500*500,a为缝宽,d为光栅常数
白黑白黑下面是第一种画法:
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 : a for j = 0 : 1 : ( c / d -1) U1(i + j * d , : ) = 1; endendfigure , 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;endfigure , imshow(U2);
第三种方法,再次更新,把光栅常数d放到for中,这样更直观(因从0开始,所以为c-1)
U3 = zeros( c , r );for n = 0 : d : c-1 U3( 1 + n : a + n , : ) = 1;endfigure , imshow(U3);
第四种方法,使遍历的参量从1开始,也是为了更直观,但这就要求循环中a-1
U4 = zeros( c , r );a = a -1 ;for n = 1:d:c U4(n:n+a,:) = 1;endfigure , imshow(U4);
如果需要二维光栅只需要在列方向在添加一组就可以了。
- 通过四种方法,在MATLAB中画一维光栅
- matlab保存图片的四种方法
- 光栅化插值方法
- 光栅化方法优化
- 通过四种方法查找字符A
- 在MATLAB中的三种归一化方法
- 光栅化插值方法-透视除法
- Matlab中图片保存的四种方法
- Matlab中图片保存的四种方法
- Matlab导出eps或jpg图片的四种方法
- Matlab中图片保存的四种方法[转]
- Matlab中图片保存的四种方法
- Matlab导出eps或jpg图片的四种方法
- 软件光栅化渲染器(四)
- 光栅渲染器(四)多边形绘制
- Spring通过构造方法注入的四种方式
- Spring通过构造方法注入的四种方式
- Spring通过构造方法注入的四种方式
- 正则表达式
- 12、文件查找locate、find
- Java进阶(七)正确理解Thread Local的原理与适用场景
- lamp 独立环境安装
- 使用jmeter测试工具完成文件的上传
- 通过四种方法,在MATLAB中画一维光栅
- Appium测试app报错Permission to start activity denied.
- boost::bind的理解与使用
- 删除 添加 全选 批量删除
- java蓝桥试题学做菜
- 表单验证
- 搭建zookeeper集群遇到的问题整理
- 数据结构实验之查找五:平方之哈希表
- Vue实践之--非父子组件通信