function [xPhonon] = FindPhonons(Length, Phonon, x) % [xPhonon] = FindPhonons(Length, Phonon, x) % % Description: % This function will determine the location of the phononsa along the x-axis % given the lengths of the potential segments and the segment the phonon is % on. % % Outputs: % xPhonon - Spatial array corresponding to input array 'x' with a '1' at % the phonon location. % % Inputs: % Length - Array containing the location of each potential segment % Phonon - Array containing the phonon location. A '1' in any entry means % that the phonon is located on the left hand side of that % potential segment. A '2' located in the last entry means the % phonon is located on the left hand side of the last segment. An % empty array means that there is on phonon. % x - Spatial array containing the x-axis if sum(Phonon) == 0 % If no phonon, return empty array xPhonon = zeros(1,length(x)); else if Phonon(end) == 2 % Put last phonon on end of Phonon Phonon(end) = 0 Phonon = [Phonon 1]; end % Must find phonon xPhonon = zeros(1,length(x)); % Find phonon locations PhononLocations = Length(logical(Phonon)); for PhononIndex = 1:length(PhononLocations) [z,PhononLocIndex] = min(abs(x - PhononLocations(PhononIndex))); % Adjust phonon so that potential change occur between PhononLocIndex and PhononLocIndex 1 if x(PhononLocIndex) > Length(logical(Phonon)) PhononLocIndex = PhononLocIndex - 1; end xPhonon(PhononLocIndex) = 1; end end end