error with index and array elements
5 views (last 30 days)
Show older comments
Henry Bartholomew
on 6 Feb 2021
Answered: Star Strider
on 6 Feb 2021
Hello all,
I am asking for your help with an error I keep getting with my code. First, here is my current code:
clear all;
close all;
clc;
% Analytical solution
t=0:600; % Makes time go from 0 to 600 sec
Tcoffee=(130*exp(-t/200)+70); % The function for the temp. of the coffee
% Numerical solution
X0=1; % Initial state
T0=0; % Initial time
T=600; % Final time of 600 sec
h=30; % Time step of 30 sec
g=70; % Forcing function (room temp)
N=T/h; % Number of time steps
Thist=[T0:h:T]; % Creates a vector of the solution
Xhist=zeros(1,N); % Creates a row vector of zeros
Xhist(1)=X0; % Assigns the first element
for i=2:1:N+1
X=Xhist(i-1); % "Old" X from step i-1
T=Thist(i-1); % "Old" time from step i-1
f=(130*exp(-T/200)+g); % Dynamics
Xhist=X+f*h; % Euler's method
end
and the error i keep getting:
Index exceeds the number of array elements (1).
Error in Untitled (line 22)
X=Xhist(i-1); % "Old" X from step i-1
Lastly, some things to note are that the value for Xhist when i type it into the command window is 6001 and not a table. What is also weird is that if i add a % infront of
g=70; % Forcing function (room temp)
becomes a 1x20 double table but then I get the error:
Unrecognized function or variable 'g'.
Error in Untitled (line 24)
f=(130*exp(-T/200)+g); % Dynamics
but if I change g in
f=(130*exp(-T/200)+g); % Dynamics
to be +70, Xhist goes back to being the number 6001 again. So if anyone can shed so light on why I'm having this issue, I would be most appreciative.
0 Comments
Accepted Answer
Star Strider
on 6 Feb 2021
In this line:
Xhist=X+f*h; % Euler's method
‘XHist’ is re-defined as a scalar. That’s causing the problem. It probably needs to be subscripted. I leave that to you.
0 Comments
More Answers (0)
See Also
Categories
Find more on Spline Postprocessing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!