Index exceeds array bounds.

1 回表示 (過去 30 日間)
Sudhaunsh Deshpande
Sudhaunsh Deshpande 2021 年 4 月 28 日
コメント済み: Walter Roberson 2023 年 5 月 16 日
clc; clear;
dt = 0.5;
Glucose = zeros(1,361);
Glucose(1,1) = 6000;
Glucose_Released = 110;
Glucose_Used = zeros(1,361);
Usage_Fraction = zeros(1,361);
t = 0:dt:180; % We need to generate a time vector for our plot
for k = 2:length(t)
Glucose_Used(k) = Glucose(k) * Usage_Fraction(k); % Based on Euler?sformula
Glucose(k-1) = Glucose(k) + [Glucose_Released(k) - Glucose_Used(k)]*dt;
end
Please help!!
  3 件のコメント
Adam Danz
Adam Danz 2021 年 4 月 28 日
Question edited to format code.
@Sudhaunsh Deshpande, looks like David hit the nail on the head. Let us know if you have any other questions.
Sudhaunsh Deshpande
Sudhaunsh Deshpande 2021 年 4 月 28 日
It did kinda work, the values are now zero which means that my guy is dead, but hey atleast the damn thing runs!

サインインしてコメントする。

採用された回答

David Fletcher
David Fletcher 2021 年 4 月 28 日
You have defined Glucose_Released as a scaler value
Glucose_Released = 110;
You are then trying to index it, which will cause an error
Glucose_Released(k)
  6 件のコメント
Sudhaunsh Deshpande
Sudhaunsh Deshpande 2023 年 5 月 16 日
Pardon my text editing:)
for i=1: length (t) Glucose Used(i) = Glucose(i) * Usage_Fraction(i); Glucose(i+1) = Glucose(i) + (G lucose_Released(i) Glucose_Used(i)) *dt; Insulin breakdown(i) = Insulin(i)/k; Insulin(i+1) Insulin(1) [Insulin_Secreted(i) Insulin_breakdown (1)] *dt;
Walter Roberson
Walter Roberson 2023 年 5 月 16 日
You have
Glucose(i+1) = Glucose(i) + (G lucose_Released(i) Glucose_Used(i)) *dt
We can assume an accidental space,
Glucose(i+1) = Glucose(i) + (Glucose_Released(i) Glucose_Used(i)) *dt
but there needs to be something between Glucose_Released(i) and Glucose_Used(i)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by