Subscript indices must either be real positive integers or logicals. how can i change? thanks!
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(2 个)
Bjorn Gustavsson
2019-10-2
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 个评论
Andrei Bobrov
2019-10-2
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!