2016-11-19 1 views
-2

에 다른 데이터 파일에서 데이터를 구성하는 방법 :은 내가 포트란 95 사용하고 다음과 같이 지금은 문제에 직면하고있어 포트란

  • 나는 4 열 각각 8 개 개의 데이터 파일을 가지고, 그들은 다른 프로그램에 의해 생성되는 (각 파일에는 초기 조건의 다른 세트에 대한 미분 방정식의 해가 포함되어 있습니다).
  • 네 번째 열은 내 x이고 두 번째 열은 내 f(x)입니다.
  • 그래서 9 열 (첫 번째는 x, 다른 열은 각 파일의 f(x))을 사용하여 새 파일을 만드는 것이 좋습니다.
  • 그러나 각 파일의 값은 x (및 해당 f)이며 1.10, 1.30 및 1.40은 1, 1.15, 1.25 및 1.42는 다른 값입니다.
  • 그래, [1.00; 1.20]처럼 x에서 "밴드"를 가져 와서이 평균값을 x으로 쓰고이 밴드에서이 밴드에서 f(x)을 실행하면됩니다.

하지만 어떻게 관리 할 수 ​​없었습니다.

+0

태그로 판단하면 gnuplot으로 데이터를 플롯해야합니까? 왜 모든 파일을 이렇게 플로팅하지 :'plot 'file1.dat'u 4 : 2'? –

+0

예, 음모를 꾸미고 싶지만 다른 프로그램에서도 같은 xs에 대해 fs를 입력해야합니다 ... – atMalkyor

+2

보간을 사용하여 모든 데이터 세트에 동일한 x-vals를 설정하려고합니다. 문제가있는 코드가있을 때까지는이 사이트의 범위 밖에 있습니다. – agentp

답변

1

나는 임시 파일로 smooth csplines 옵션을 사용하여 파일을하려 시도 할 것입니다 : 당신이 스플라인 보간 살 수 있다면

set format x "%10.3f" 
set format y "%10.3f" 

set xrange [...] 
set samples ... 

set table "temp1.dat" 
plot 'file1.dat' using 4:2 smooth csplines 
unset table 

이 작동합니다. csv 형식으로 선형 보간 된 점을 인쇄하는 방법은 없습니다. 선형 보간법을 수행하기 위해 약간의 Fortran (더 많은 연구를 위해 필요할지 여부를 묻는 것)을 배우고 싶을 수도 있습니다. 또는 다른 프로그래밍 언어.

는 다음 Loop structure inside gnuplot?

에 예를 들어 하나 개의 명령 체크 답변 모든 파일을 플롯하려면 리눅스에, 당신은 colrmpaste를 사용하여 생성 된 데이터를 결합 할 수 있습니다.

cat temp1.dat | colrm 11 > x 
cat temp1.dat | colrm 1 11 | colrm 12 > y1 
cat temp2.dat | colrm 1 11 | colrm 12 > y2 
... 

paste x y1 y2 ... > combined.dat 

필요에 따라 상수를 조정하십시오.

다시 프로그래밍 언어를 학습하면 도움이 될 수 있습니다.

+0

물리학 분야에서 3 가지 좋은 방법이 있습니다 ... – Holmz