MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Chris Corbett on 4 Jan 2013

For some reason the points in the graph I am drawing don't join up, and I have no idea why. I'm sure it is probably something simple, but I don't have a clue. Can anybody see why?

Thanks, Chris.

if true clc; clear all; % Slit Width; d = linspace(-10e-6,10e-6,500); % Distance From Slit to Screen; z = 0.2; % Wavelength; lambda = 500e-9; % Screen; s = linspace(-0.02,0.02,500); % Wave Number; k = (2.*pi)/lambda; % Wave Number; k = (2.*pi)/lambda; % Width of slit; w = (2e-6); % Setting Value of I0 I0 = 5

for xs = linspace(-0.02,0.02,500);

xa = linspace(-10e-6,10e-6,500); % Path Length; r = ((((xs-xa).^2)+z.^2).^0.5); % Electric Field; dE = (4e-8./d).*((exp(1i.*k.*r))/r); Etot = sum(dE); % Etot = sum of E; Itot = Etot.^2; plot(xs,Itot,'-'); hold on; end; end

Answer by Image Analyst on 4 Jan 2013

First of all, your for loop is not in the form "for startValue : stepValue : endValue" but you probably don't even need the for loop in the first place. Secondly, Etot is a scalar while xs is a 500 element vector, so your plot() doesn't really make sense.

## 0 Comments