Index in position 1 is invalid. Array indices must be positive integers or logical values.

1 次查看(过去 30 天)
I am getting the following error message: Index in position 1 is invalid. Array indices must be positive integers or logical values.
can anyone please explain me how to fix it ? or help me please to fix it ?
my code :
clear all; clc;
n = 1000;
jumlah_tempat_tidur_transisi = 16;
lambda = 300;
tipe_pasien = randi([0 1],1,n); % 0=Bergejala , 1=Tidak Bergejala
waktu_antar_kedatangan_pasien = poissrnd(lambda,1,n);
waktu_kedatangan_pasien(1) = waktu_antar_kedatangan_pasien(1);
for i=1:n-1
waktu_kedatangan_pasien(i+1) = waktu_kedatangan_pasien(i)+waktu_antar_kedatangan_pasien(i+1);
end
tidak_bergejala = 0;
tb = 1; %index
for i=1:length(waktu_kedatangan_pasien)
if tipe_pasien(i)==1
waktu_kedatangan_pasien(i) = waktu_kedatangan_pasien(i)+60;
indeks_tidak_bergejala(tb) = i;
tb = tb+1; %index
tidak_bergejala = tidak_bergejala+1;
end
end
peluang_tes=binornd(tidak_bergejala,0.5);
positif=0;
hasil_tes=zeros(1,tidak_bergejala);
for i=1:length(indeks_tidak_bergejala)
hasil_tes(indeks_tidak_bergejala(i))=randi([0,1],1,1);
if positif<peluang_tes && hasil_tes(indeks_tidak_bergejala(i))==0
positif=positif+1;
else
hasil_tes(indeks_tidak_bergejala(i))=1;
waktu_kedatangan_pasien(indeks_tidak_bergejala(i))=0;
end
end
waktu_kedatangan_pasien=sort(waktu_kedatangan_pasien);
q=1;
for i=1:length(waktu_kedatangan_pasien)
if waktu_kedatangan_pasien(i)~= 0
waktu_kedatangan_pasien_ke_transisi(q)=waktu_kedatangan_pasien(i);
q=q+1;
end
end
kamar_kosong=0;
kamar_terpakai=zeros(1,jumlah_tempat_tidur_transisi);
kamar_terisi=zeros(1,jumlah_tempat_tidur_transisi);
antrian_perkamar=zeros(1,jumlah_tempat_tidur_transisi);
waktu_tunggu_pasien=zeros(1,length(waktu_kedatangan_pasien_ke_transisi));
waktu_antri=zeros(2,jumlah_tempat_tidur_transisi);
waktu_pelayanan_transisi=poissrnd(1440,1,length(waktu_kedatangan_pasien_ke_transisi));
for i=1:length(waktu_kedatangan_pasien_ke_transisi)
for nn=1:jumlah_tempat_tidur_transisi
if kamar_terpakai(nn)>0
kamar_terpakai(nn)=kamar_terpakai(nn)-(waktu_kedatangan_pasien_ke_transisi(i)-waktu_kedatangan_pasien_ke_transisi(i-1));
if kamar_terpakai(nn)<=0
kamar_terpakai(nn)=kamar_terpakai(nn)+waktu_antri(1,nn);
for a=1:size(waktu_antri,1)
if a==size(waktu_antri,1)
waktu_antri(a,nn)=0;
else
waktu_antri(a,nn)=waktu_antri(a+1,nn);
end
end
antrian_perkamar(nn)=antrian_perkamar(nn)-1;
end
end
end
jml_waktu_antri=sum(waktu_antri);
for qw=1:jumlah_tempat_tidur_transisi
nk=jumlah_tempat_tidur_transisi-qw+1;
if kamar_terpakai(nk)<=0 && antrian_perkamar(nk)==0
nomor_kamar_kosong=nk;
kamar_kosong=1;
end
end
if kamar_kosong==1
kamar_terpakai(nomor_kamar_kosong)=kamar_terpakai(nomor_kamar_kosong)+waktu_pelayanan_transisi(nomor_kamar_kosong);
else
sembarang=jml_waktu_antri+kamar_terpakai;
[waktu_tunggu_pasien(i),dsini]=min(sembarang);
antrian_perkamar(dsini)=antrian_perkamar(dsini)+1;
waktu_antri(antrian_perkamar(dsini),dsini)=waktu_pelayanan_transisi(i);
end
kamar_kosong=0;
waktu_sistem_transisi=waktu_tunggu_pasien+waktu_pelayanan_transisi;
end
Index in position 1 is invalid. Array indices must be positive integers or logical values.
Error in line 90

回答(1 个)

Walter Roberson
Walter Roberson 2022-4-10
for i=1:length(waktu_kedatangan_pasien_ke_transisi)
i starts out at 1.
for nn=1:jumlah_tempat_tidur_transisi
if kamar_terpakai(nn)>0
kamar_terpakai(nn)=kamar_terpakai(nn)-(waktu_kedatangan_pasien_ke_transisi(i)-waktu_kedatangan_pasien_ke_transisi(i-1));
when i is 1, then waktu_kedatangan_pasien_ke_transisi(i-1) is waktu_kedatangan_pasien_ke_transisi(1-1) which is a request to index at 0.
  1 个评论
Takim Mustakim
Takim Mustakim 2022-4-11
编辑:Takim Mustakim 2022-4-11
i have changed
for i=2:length(waktu_kedatangan_pasien_ke_transisi)
but still erorr, "Index in position 1 is invalid. Array indices must be positive integers or logical values".
am i worng ?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by