Subscript indices must either be real positive integers or logicals. how can i change? thanks!
1 view (last 30 days)
Show older comments
dt = 0.1; % time step size in seconds
i0 = 0; % potential at time 0
Vs = 10; % positive time independant source potential
L = 2; % inductor
R = 1; % resistor
N = 10; % number of time steps
i(0) = v0; %initial condition
for loop=1:N %recursive
i(loop) = i(loop-1) + Vs*dt*/L - i(loop-1)*R/L;
end
plot([0:N-1]*dt,v, ‘-k’)
xlabel( ‘Time in seconds’)
ylabel( ‘Inductor current’)
grid on hold time = [0:N-1]*dt;
i_ana = Vs/R*(1- exp(-time*(R/L));
plot(time,I_ana,’–k’)
hold
legend( ‘Numerical solution’, ‘Analytical solution’)
Subscript indices must either be real positive integers or logicals.
0 Comments
Answers (2)
Bjorn Gustavsson
on 2 Oct 2019
Matlab uses 1-based indexing to vectors, so your line:
i(0) = v0; %initial condition
Has to be changed to:
i(1) = v0; %initial condition
Then you have to adapt the rest of your script to account for that.
HTH
0 Comments
Andrei Bobrov
on 2 Oct 2019
ii(1) = v0; %initial condition
for loop=2:N %recursive
ii(loop) = ii(loop-1) + Vs*dt*/L - ii(loop-1)*R/L;
end
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!