![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Proszę o pomoc na forum bo choć z wielu wątków już skorzystałem to nadal jestem w przedszkolu. Problem wygląda następująco. Mam surowe dane meteorologiczne w pliku tekstowym. Wyniki zapisane są co 10 minut a cały plik zawiera dane z miesiąca. Chcę obliczyć średnie dobowe. Znalazłem następujące przykłady: 1. Wyciągnięcie danych z wybranego dnia
echo $Temp wyświetla ciąg liczb oddzielonych przecinkami - więc chyba OK. 2. Liczenie średniej
I jak teraz zapisać średnią do zmiennej? Gdy wpisuję Dostaję tylko pierwszą liczbę a nie średnią z wybranych. Funkcja "srednia" działa gdy wstawiam ciąg liczb więc nie wiem dlaczego wstawienie zmiennej nie daje tego samego wyniku. Ten post edytował nacek 28.09.2014, 00:47:58 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 23.09.2014 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Poniżej zamieszczam skrypt o bliźniaczej funkcjonalności. Nie ma pliku wsadowego, ale jest losowe generowanie temperatur na dane dni. Na razie załączam, mam nadzieję, że Ci się przyda. Jeśli znajdę czas, przeanalizuję twój kod i wskażę, co trzeba poprawić.
" Dostaję tylko pierwszą liczbę a nie średnią z wybranych. Funkcja "srednia" działa gdy wstawiam ciąg liczb więc nie wiem dlaczego wstawienie zmiennej nie daje tego samego wyniku. " finct_get_args() zwraca tablicę. Z tego co opisujesz wkłądasz do funkcji srednia() stringa. Dla tego może nie działać. Przerób go najpierw: $Temp = explode(',', $Temp); Ten post edytował marcinM97 28.09.2014, 11:42:36 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(marcinM97) Poniżej zamieszczam skrypt o bliźniaczej funkcjonalności. To za skomplikowane. Cytat(marcinM97) finct_get_args() zwraca tablicę. Z tego co opisujesz wkłądasz do funkcji srednia() stringa. Dla tego może nie działać. Przerób go najpierw: $Temp = explode(',', $Temp); Poszedłem tym tropem chociaż zapisałem inaczej:
Funkcja średniej (ta w pierwszym poście) zwracała w tym wypadku "0". Więc sprawdzałem dalej. Cytat(tzm)
z palca a bledu nie szukalem bo nie ma pliku wsadowego... dalbys przyklad. Tak zapisana funkcja wyrzuca błędy: "array_sum() expects parameter 1 to be array", ALE! -oblicza średnią prawidłowo. Więc na razie zrezygnowałem z funkcji i zapisałem po prostu działanie: (z zaokrągleniem do 1 miejsca). Może jeszcze ktoś zaproponuje funkcję do liczenia średniej, która sprawdzała by się w takiej sytuacji? Mam jeszcze jedną wątpliwość przy liczeniu średniej dla wartości np. promieniowania słonecznego. Nie ma przecież sensu obliczać dla całej doby. Tylko jak wyciągnąć dane z pliku tylko dla części doby? Przykładowo: plik z danymi za sierpień 2014 W kolumnach kolejno: data | godzina | temperatura | temp.max | temp.min | punkt rosy | wilgotność | intensywność opadu | intensywnosc.max | suma opadu z 10min | suma dzienna narastająco | ciśnienie | wiatr sredni | podmuch | kirunek wiatru litery ang. | kierunek stopnie | index uv | indexuv.max | promieniowanie slonca | promieniowanie.max. (wartości podstawowe to średnie z ostatnich 10 minut a max/min to skrajne zarejestrowane w tym czasie) W moim kodzie trzeba podstawić $Wybrany_dzien = '1-08-2014'; lub następne ![]() Ten post edytował nacek 29.09.2014, 09:49:44 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
No to znaczy że nie przekazywałeś tablicy jako parametru funkcji. Potem zerknę bo w pracy już jestem a to dłuższy temat.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 24.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Tylko jak wyciągnąć dane z pliku tylko dla części doby? Sam siebie cytuję bo tak zadanie pytanie więcej komplikuje. Powinienem zapytać: jak policzyć średnią tylko dla wartości dodatnich? Rozwiązanie znalazłem tu choć z innym warunkiem: Średnia arytmetyczna Czyli warto czasem pokopać w starszych i bardziej ogólnie zatytuowanych tematach. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 07:26 |