Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

WHY THIS ERROR OCCUR ''??? Subscript indices must either be real positive integers or logicals."

1 Ansicht (letzte 30 Tage)
t=-5 :0.1 :10;
h2=zeros(size(t));
h1=zeros(size(t));
z=zeros(size(t));
z=1*(t==0);
h2(t>=0)=exp(-t(t>=0));
h1(t>=0)=exp(-2*t(t>=0));
y1=conv(z,h1);
tn=t(1)+t(1):.1:t(end)+t(end);
y3=conv(z,h2);
y(tn)=y1+y3;
plot(tn,y);
hold on
y2(tn)=h1+h2;
plot(tn,y2)
ylabel('y1(t)=x(t)*h(t)');
xlabel('time[sec]');
grid;

Antworten (2)

Kye Taylor
Kye Taylor am 6 Nov. 2012
Bearbeitet: Kye Taylor am 6 Nov. 2012
Rethink how you're defining/using the variable
tn

Wayne King
Wayne King am 6 Nov. 2012
Bearbeitet: Wayne King am 6 Nov. 2012
The problem is that you have a vector, tn, that goes in increments of 0.1, but you cannot access elements of another vector y() using that.
The elements of y() have to be accessed using a positive integer between 1 and the length of y.
For example,
y = randn(100,1);
y(5:10)
You are trying to do this:
y(3.1)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by