Clear Filters
Clear Filters

Interpolation and getting errors

2 views (last 30 days)
C Mck
C Mck on 8 Jul 2016
Commented: C Mck on 8 Jul 2016
I am trying to run the piece of code below
function output = AtheroEqn2016(t,y,e)
fid= fopen('ifng.txt','r');
format longg;
A = textscan(fid, ['%s', repmat('%f', 1 , 25)], 'HeaderLines', 1);
e= [A{2:end}];
time=[0 30 60 90 120 150 180 210 240 270 300 330 360 390 420 450 480 510 540 570 600 630 660 690 720]
e= (((t-time(floor(t/30)))/(time(floor(t/30)+1)-time(floor(t/30))))*e1) + (((time(floor(t/30)+1)-t)/(time(floor(t/30)+1)-time(floor(t/30)+1)))*e0)
howver when it gets to the last line I get the following error, _ * _ Subscript indices must either be real positive integers or logicals._*_
Does anyone know why this is and how I could fix it?
Thanks

Accepted Answer

Jan Orwat
Jan Orwat on 8 Jul 2016
Edited: Jan Orwat on 8 Jul 2016
Note, you are trying to access time(0) when t<30. Matlab index arrays starting with 1. Probably changing floor(t/30) to ceil(t/30) or to floor(t/30)+1 would fix this error.
  2 Comments
Jan Orwat
Jan Orwat on 8 Jul 2016
btw. you will get the same time vector by typing time = 0:30:720;

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!