What caused this error message?
    6 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
---------------------------------------------------------------------------------------------------------------
% 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 Kommentare
Antworten (1)
  Raj
      
 am 24 Apr. 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 Kommentare
  Raj
      
 am 25 Apr. 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.
Siehe auch
Kategorien
				Mehr zu Logical finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


