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

1 vue (au cours des 30 derniers jours)
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

Réponses (1)

Walter Roberson
Walter Roberson le 10 Avr 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 commentaire
Takim Mustakim
Takim Mustakim le 11 Avr 2022
Modifié(e) : Takim Mustakim le 11 Avr 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 ?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by