denominator = (2 * k + 1) .^ 2;
Use the elemtnwise .^ instead of the matrix operation ^ . The same for "(-1)^k" .
The corresponding error message is clear:
Error using ^
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.
[EDITED] The formula contains: "Sum from k=0 to n", you code contains:
Replace this by k = 0:n. It will be more efficient to move the definition before the loop and pre-allocate the output:
function S = triangle_wave(n)
t = linspace(0, 4*pi, 1001);
S = zeros(size(t));
k = 0:n;
for tIndex = 1 : length(t)
numerator = ((-1) .^ k) .* sin(t(tIndex) .* (2 * k + 1));
denominator = (2 .* k + 1) .^ 2;
S(tIndex) = sum(numerator ./ denominator);
end
Best Answer