What caused this error message?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
---------------------------------------------------------------------------------------------------------------
% Define the input signal x[n]
n = 0:49;
x = (-1).^n .* (n >= 0);
% Define the length of the input signal
N = length(x);
% Initialize the output signal y[n]
y = zeros(1, N);
% Define the initial conditions
y_minus_1 = 4;
y_minus_2 = -2;
% Calculate the output y[n] using the difference equation
for n = 1:50
if n == 1
y(n) = x(n) + x(n - 1) - (1/4) * y_minus_1 + (1/8) * y_minus_2;
elseif n == 2
y(n) = x(n) + x(n - 1) - (1/4) * y(n - 1) + (1/8) * y_minus_1;
else
y(n) = x(n) + x(n - 1) - (1/4) * y(n - 1) + (1/8) * y(n - 2);
end
end
% Plot the output signal y[n]
stem(0:N-1, y);
grid on;
xlabel('n');
ylabel('y[n]');
title('Output of the System');
--------------------------------------------------------------------------------------------------------------------
Array index should be positive integer or logical value.
Error: HW2_2_59_c (18th line)
y(n) = x(n) + x(n - 1) - (1/4) * y_minus_1 + (1/8) * y_minus_2;
0 comentarios
Respuestas (1)
Raj
el 24 de Abr. de 2024
Hi @대선
In MATLAB, array indices start from 1, so attempting to access x(0) or y(0) would result in this error.
y(n) = x(n) + x(n - 1) - (1/4) * y_minus_1 + (1/8) * y_minus_2;
Here you are trying to access x(n-1) which is essentially x(0) when n=1.
This will throw the error stating array index should be positive or logical value. Make appropiate changes in your code to reolve this.
I hope this helps!
3 comentarios
Raj
el 25 de Abr. de 2024
y(1)=x(1)+x(0)-(1/4)* y_minus_1 + (1/8) * y_minus_2;
You can later have the limit of for loop from n=2:50
for n = 2:50
if n == 2
y(n) = x(n) + x(n - 1) - (1/4) * y(n - 1) + (1/8) * y_minus_1;
else
y(n) = x(n) + x(n - 1) - (1/4) * y(n - 1) + (1/8) * y(n - 2);
end
end
Check if this is what you intend on doing.
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!