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

1 Ansicht (letzte 30 Tage)
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

Antworten (1)

Walter Roberson
Walter Roberson am 10 Apr. 2022
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 Kommentar
Takim Mustakim
Takim Mustakim am 11 Apr. 2022
Bearbeitet: Takim Mustakim am 11 Apr. 2022
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 ?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by