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

 채택된 답변

Jan Orwat
Jan Orwat 2016년 7월 8일
편집: Jan Orwat 2016년 7월 8일

0 개 추천

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

Jan Orwat
Jan Orwat 2016년 7월 8일
btw. you will get the same time vector by typing time = 0:30:720;
C Mck
C Mck 2016년 7월 8일
thanks

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

태그

질문:

2016년 7월 8일

댓글:

2016년 7월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by