Ich bin für eine Weile auf diesem festgefahren. Ich habe eine Simulation in Fortran90 durchgeführt.Fassen Sie die Ausgabe zusammen
program epidemic
implicit none
!!!variable declaration
integer, parameter::n=625
real, dimension(1:n)::x,y
real :: alpha, beta, epsilon, dist, prob, u
integer, dimension(1:n) :: infections
integer:: T, I1, I2, I3, i, j, K2, infperiod, k, tmax
!!!!!!!!!! paramater value
tmax=11
alpha=0.4
gamma=9
!!Generate population!!
I3=1
Do I1=1, 25, 1
Do I2=1,25,1
x(I3)=REAL(I1)
y(I3)=REAL(I2)
Infections(I3)=0
I3=I3+1
ENDDO
ENDDO
!!!INITIAL INFECTION!!!
call random_number(u)
k2=1+aint(u)*n
infections(k2)=1
!!!! initial infection !!!!!!
call random_number(u)
IF (prob >= u) THEN
END IF
END IF
ENDDO
enddo
!!! output data
!!! writing and saving
Do i= 1, n
write(*,*) i, x(i), y(i)
ENDDO
end program epidemic
Das Ergebnis meiner Simulation ist ein Datenrahmen, der wie folgt solche Individuen darstellt
1 1.00000000 1.00000000 1
2 1.00000000 2.00000000 4
3 1.00000000 3.00000000 3
4 1.00000000 4.00000000 4
5 1.00000000 5.00000000 4
6 1.00000000 6.00000000 4
7 1.00000000 7.00000000 4
8 1.00000000 8.00000000 2
9 1.00000000 9.00000000 4
10 1.00000000 10.0000000 4
11 1.00000000 11.0000000 5
12 1.00000000 12.0000000 5
13 1.00000000 13.0000000 4
14 1.00000000 14.0000000 5
15 1.00000000 15.0000000 6
Die erste Spalte sieht, daß i 1 = 625, wobei die zweite und die dritte Spalte die Matrixindizes darstellt [ich, j]. Die vierte Spalte stellt die (Zeit) (1:15 Tage) dar, die die Person die Infektionen bekommen. Ich möchte die Ausgabe in nur zwei Spalten ablegen können.
Zur Veranschaulichung möchte ich eine neue Variable erstellen, die zeigt, dass viele Menschen an diesem Tag infiziert wurden.
also die Ausgabe der 625 Zeilen wird so etwas wie dieses
AT Day=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Total of infected individual =3 5 6 7 11 8 0 1 ...........
Danke sehr, sehr viel
Verwerfen Sie keine Fragen, indem Sie wichtigen Code löschen, auf dem die Antworten basieren. –