我想在循环中保存所有输出,然后将输出与j
进行对比。我尝试了很多东西,但我没有存储所有输出。在程序结束时,我只有一个变量。这是我的代码:
Tsim <- 0.815
toplam <- 0
toplam_ortalama_enerji <- 0
toplam_ortalama_enerji_kare <- 0
mydata <- read.table("/local/syaman/1RLQ_cm3.680-6.400_GO_KEFC1.40_e1.00_T0.815_ii4_trj.dat")
x <- mydata[-1:-5000,]
enerji <- x[,3]
l <- length(enerji)
step <- seq(0.1, 2.5, by=0.001)
for(j in step){
sicaklik = j + sicaklik
for(i in 1:l){
Si = exp((enerji[i]/Tsim)-(enerji[i]/sicaklik))
toplam = toplam + Si
ortalama_enerji <- enerji[i]*Si
toplam_ortalama_enerji <- toplam_ortalama_enerji + ortalama_enerji
ortalama_enerji_kare <- enerji[i]*enerji[i]*Si
toplam_ortalama_enerji_kare <- toplam_ortalama_enerji_kare + ortalama_enerji_kare
}
isi_kapasitesi = ((toplam_ortalama_enerji_kare/toplam)-((toplam_ortalama_enerji/toplam)*(toplam_ortalama_enerji/toplam)))/(sicaklik*sicaklik)
print(isi_kapasitesi)
}
我想保存所有isi_kapasitesi
。
答案 0 :(得分:0)
我想你需要的是基本的东西吗?
storage = c()
for(j in step){
...
storage = c(storage, isi_kapasitesi)
}
答案 1 :(得分:0)
如果你想使用这样的for循环,你需要首先创建isi_kapasitesi作为循环外的列表,然后按如下方式存储每个单独的元素:
isi_kapasitesi <- list()
for(j in 1:length(step)){
sicaklik = step[j] + sicaklik
for(i in 1:l){
Si = exp((enerji[i]/Tsim)-(enerji[i]/sicaklik))
toplam = toplam + Si
ortalama_enerji <- enerji[i]*Si
toplam_ortalama_enerji <- toplam_ortalama_enerji + ortalama_enerji
ortalama_enerji_kare <- enerji[i]*enerji[i]*Si
toplam_ortalama_enerji_kare <- toplam_ortalama_enerji_kare + ortalama_enerji_kare
}
isi_kapasitesi[j] = ((toplam_ortalama_enerji_kare/toplam)-((toplam_ortalama_enerji/toplam)*(toplam_ortalama_enerji/toplam)))/(sicaklik*sicaklik)
print(isi_kapasitesi[j])
在您仅将最后一个值存储在循环中之前编写它的方式。