This repository has been archived on 2021-05-17. You can view files and clone it, but cannot push or open issues or pull requests.
scientificComputing/programmingstyle/code/calculateSines.m

33 lines
1.0 KiB
Matlab

function sines = calculateSines(x, amplitudes, frequencies)
% sines = calculateSines(x, amplitudes, frequencies)
%
% Function calculates sinewaves with all combinations of
% given amplitudes and frequencies.
% Arguments: x, a vector of radiants for which the sine should be
% computed.
% amplitudes, a vector of amplitudes.
% frequencies, a vector of frequencies.
%
% Returns: a 3-D Matrix of sinewaves, 2nd dimension represents
% the amplitudes, 3rd the frequencies.
sines = zeros(length(x), length(amplitudes), length(frequencies));
for i = 1:length(amplitudes)
sines(:,i,:) = sinesWithFrequencies(x, amplitudes(i), frequencies);
end
end
function sines = sinesWithFrequencies(x, amplitude, frequencies)
sines = zeros(length(x), length(frequencies));
for i = 1:length(frequencies)
sines(:,i) = sinewave(x, amplitude, frequencies(i));
end
end
function sine = sinewave(x, amplitude, frequency)
sine = sin(2 .* pi .* x *frequency) .* amplitude;
end