matlab画彩色光栅,通过四种方法,在MATLAB中画一维光栅
樓主是光學(xué)專業(yè),經(jīng)常在MATLAB中做光學(xué)的仿真,而光柵是我們經(jīng)常用到的光學(xué)元件,所以要經(jīng)常繪制,在這里分享一下一維光柵的四種畫法,適用于初學(xué)者,畫法純屬原創(chuàng),僅作參考。編譯環(huán)境MATLAB2014a
下面是光柵參數(shù),圖像大小500*500,a為縫寬,d為光柵常數(shù)
r = 500 ;c = r ;
d = 10;
a = 6;復(fù)制代碼
下面是第一種畫法:
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;
end
end
figure , imshow (U1);復(fù)制代碼
1.jpg (68 KB, 下載次數(shù): 34)
第一種方法
2017-12-21 13:09 上傳
顯然方法有點(diǎn)復(fù)雜,需要兩個(gè)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);復(fù)制代碼
2.jpg (68 KB, 下載次數(shù): 19)
第二種方法
2017-12-21 13:09 上傳
第三種方法,再次更新,把光柵常數(shù)d放到for中,這樣更直觀(因從0開(kāi)始,所以為c-1)
%% 第三種畫法
U3??= zeros( c , r );
for n = 0 : d : c-1
U3( 1 + n : a + n , : ) = 1;
end
figure , imshow(U3);復(fù)制代碼
3.jpg (68 KB, 下載次數(shù): 21)
第三種方法
2017-12-21 13:09 上傳
第四種方法,使遍歷的參量從1開(kāi)始,也是為了更直觀,但這就要求循環(huán)中a-1
%% 第四種畫法
U4 = zeros( c , r );
a = a -1 ;
for n = 1:d:c
U4(n:n+a,:) = 1;
end
figure , imshow(U4);
4.jpg (68 KB, 下載次數(shù): 22)
第四種方法
2017-12-21 13:10 上傳
總結(jié)
以上是生活随笔為你收集整理的matlab画彩色光栅,通过四种方法,在MATLAB中画一维光栅的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 闲的没事,自己动手修改上兴3.2源代码(
- 下一篇: Delphi软件工程师试题