How to plot shaded rectangles in between band gaps?
Show older comments
How to add the rectangle shaded boxes in between the band gaps. Ref image attached in end of the page.
clc
close all
c = 3e8;
d1 = 0.4;d2 = 0.6;d = d1 + d2;
n1 = sqrt(12);n2 = 1;
lambda = linspace(400e-3,800e-3, 10000000);
D1 = (2*pi*n1*d1)./lambda;D2 = (2*pi*n2*d2)./lambda;
RHS = cos(D1).*cos(D2) - 0.5*(n1^2+n2^2)/(n1*n2) * sin(D1) .*sin(D2);
kz1 =acos(RHS)/d;
IDX1 = -1<RHS<1;
kz1(IDX1)=nan;
kz=real(kz1);
kz(kz==0)=nan;
figure(1)
plot(kz,lambda,'r')
xlabel('wave vector')
ylabel('frequency')

3 Comments
Rik
on 15 Aug 2023
What have you tried so far? The patch function should do what you need.
GULZAR
on 15 Aug 2023
Star Strider
on 15 Aug 2023
The obvious solution is the patch function. I tried that, however I could not figure out how your code works.
Accepted Answer
More Answers (0)
Categories
Find more on Lengths and Angles in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
