Constructing a repeating array for a binary blazed diffraction grating
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Patrick Bevington
el 7 de Nov. de 2015
Comentada: Star Strider
el 9 de Nov. de 2015
How can I build an array given the requirements below? The purpose of this is to construct a binary blazed diffraction grating
for an array NxM of A(i,j):
- for A(1,1), A(1,2), A(1,3) = 1 and A(1,4), A(1,5), A(1,6) = 0, repeat these 6 characters for A(1,M-5), A(1,M-4), A(1,M-3) = 1 and A(1,M-2), A(1,M-1), A(1,M) = 0.
- for A(2,1), A(2,2) = 1 and A(2,3), A(2,4), A(2,5), A(2,6) = 0, repeat these 6 characters for A(2,M-5), A(2,M-4) = 1 and A(2,M-3) A(2,M-2), A(2,M-1), A(2,M) = 0.
- for A(3,1) = 1 and A(3,2), A(3,3), A(3,4), A(3,5), A(3,6) = 0, repeat these 6 characters for A(3,M-5) = 1 and A(2,M-4), A(3,M-3), A(3,M-2), A(3,M-1), A(3,M) = 0
- Repeat the above 3 steps for N rows
i.e for a 12x12 array
A = [1 1 1 0 0 0 1 1 1 0 0 0;
1 1 0 0 0 0 1 1 0 0 0 0;
1 0 0 0 0 0 1 0 0 0 0 0;
1 1 1 0 0 0 1 1 1 0 0 0;
1 1 0 0 0 0 1 1 0 0 0 0;
1 0 0 0 0 0 1 0 0 0 0 0;
1 1 1 0 0 0 1 1 1 0 0 0;
1 1 0 0 0 0 1 1 0 0 0 0;
1 0 0 0 0 0 1 0 0 0 0 0;
1 1 1 0 0 0 1 1 1 0 0 0;
1 1 0 0 0 0 1 1 0 0 0 0;
1 0 0 0 0 0 1 0 0 0 0 0]
0 comentarios
Respuesta aceptada
Star Strider
el 7 de Nov. de 2015
Use the repmat function:
Element = [1 1 1 0 0 0;
1 1 0 0 0 0;
1 0 0 0 0 0];
A = repmat(Element, 4, 2)
This takes the ‘Element’ array and duplicates it to create 4 copies vertically and 2 copies horizontally.
4 comentarios
Star Strider
el 9 de Nov. de 2015
This is much less efficient than using repmat, producing the same result:
RowRepeat = 4;
ColRepeat = 2;
Grating = [];
for k1 = 1:RowRepeat
Grating = [Grating; Element];
end
for k1 = 1:ColRepeat-1
Grating = [Grating Grating(:,1:size(Element,2))];
end
Grating % View Result
The code would be helpful because I have no idea what you’re doing.
If you already have the code for what you want to do, why not just use it?
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!