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

조회 수: 2 (최근 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