plik .dat
Re: plik .dat
Niestety to nie działa
plik .dat
Na tej stronie są te pliki, które ja wykorzystuję.
http://www.physionet.org/physiobank/database/mitdb/
http://www.physionet.org/physiobank/database/mitdb/
-
- Posty: 96
- Rejestracja: 20 lut 2012 12:30
- Wersja środowiska: LabVIEW 2014
- Lokalizacja: Katowice / Ruda Śląska
plik .dat
To zasadniczo nie jest forum MATLABa, ale myślę że postaramy się pomóc
Bo rozumiem, że bardziej interesuje Cię rozwiązanie problemu w MATLABie niż w LabVIEW?
Gdy wejdziemy na stronę faq physionetu jest tam obszernie opisane w jaki sposób zapisane są sygnały w plikach i jak je otworzyć.
http://www.physionet.org/faq.shtml#physiobank
Między innymi jest tam napisane, że plików nie da się bezpośrednio wczytać do MATLABa, ale na szczęście byli na tyle mili, że podali linki do co najmniej kilku metod odczytania naszych plików. Jedną z nich (i chyba najprostszą) jest podany tam skrypt MATLABowy "ECG_Exporter". Do pobrania stąd:
http://www.physionet.org/physiotools/ma ... _Exporter/.
Kopiujemy skrypt do MATLABa, uruchamiamy, on pyta nas o folder i nazwę plików (ważne! poza plikiem .dat trzeba ściągnąć odpowiadające pliki .hea i .atr i umieścić w tym samym folderze) a on przeczyta sygnały i ładnie wyeksportuje je do pliku zmiennych MATLABa .mat a dodatkowo uraczy nas wykresem odczytanych sygnałów.
Przetestowałem, działa.
Przeczytaj faq tej stronki i ew. opisy tych różnych metod czytania ich plików, które oni tam polecają, naprawdę całkiem dobrze jest wszystko udokumentowane. Jakby coś dalej nie działało, to pisz, postaramy się pomóc.

Gdy wejdziemy na stronę faq physionetu jest tam obszernie opisane w jaki sposób zapisane są sygnały w plikach i jak je otworzyć.
http://www.physionet.org/faq.shtml#physiobank
Między innymi jest tam napisane, że plików nie da się bezpośrednio wczytać do MATLABa, ale na szczęście byli na tyle mili, że podali linki do co najmniej kilku metod odczytania naszych plików. Jedną z nich (i chyba najprostszą) jest podany tam skrypt MATLABowy "ECG_Exporter". Do pobrania stąd:
http://www.physionet.org/physiotools/ma ... _Exporter/.
Kopiujemy skrypt do MATLABa, uruchamiamy, on pyta nas o folder i nazwę plików (ważne! poza plikiem .dat trzeba ściągnąć odpowiadające pliki .hea i .atr i umieścić w tym samym folderze) a on przeczyta sygnały i ładnie wyeksportuje je do pliku zmiennych MATLABa .mat a dodatkowo uraczy nas wykresem odczytanych sygnałów.
Przetestowałem, działa.
Przeczytaj faq tej stronki i ew. opisy tych różnych metod czytania ich plików, które oni tam polecają, naprawdę całkiem dobrze jest wszystko udokumentowane. Jakby coś dalej nie działało, to pisz, postaramy się pomóc.
Re: plik .dat
Działa, ale ten plik .mat nie jest taki jak ma być. Chciałam otrzymać plik w postaci cyfr. A tam cały czas jest tylko zapis binarny.
-
- Posty: 96
- Rejestracja: 20 lut 2012 12:30
- Wersja środowiska: LabVIEW 2014
- Lokalizacja: Katowice / Ruda Śląska
plik .dat
Ok, myślałem że jeżeli masz już dane w MATLABie to zapisanie ich sobie tak jak się chce nie będzie problemem.
Po uruchomieniu tego magicznego skryptu polecam wyczyścić workspace (polecenie "clean") bo skrypt tworzy sobie milion zmiennych i przynajmniej je nie umiem znaleźć w worspace'ie tego czego szukam.
Klikamy prawym przyciskiem na nasz plik.mat i wybieramy load. W workspace'ie pojawi nam się kilka zmiennych (w zależności ile sygnałów było w naszym wejściowym pliku dat). Namierzamy ten który nas interesuje.
Teraz zasadniczo mamy 2 opcje:
Metoda 1: Wydajemy polecenie MATLABa "save NazwaPliku.txt -ASCII ECG_1" gdzie zamiast ECG_1 piszemy nazwę zmiennej którą chcemy zapisać.
To zasadniczo rozwiązuje problem, bo mamy plik .txt w którym mamy zapisany sygnał jak to określiłaś "w postaci cyfr". Tyle że zapisany jest on z dużą dokładnością i w notacji wykładniczej. A to może przeszkadzać. Pewnie da się to zrobić bezpośrednio w MATLABie, ale nie chce mi się szukać jak. Tu z pomocą może przyjść metoda 2 (pomijamy metodę 1):
Metoda 2: Otwieramy naszą zmienną w variable editorze (dwuklik na nazwę zmiennej). Ctrl-A , Ctrl-C, Ctrl-V do Excela. W zależności od wersji MATLABA, Excela i systemowego ustawienia symbolu dziesiętnego Excel może widzieć nasze dane jako tekst (justowane do lewej). Chcemy żeby widział to jako liczby. Naciskamy Ctrl-F i w zamień zamienimy przecinek na kropkę (lub kropkę na przecinek) tak żeby Excel widział dane jako liczby (wyjustował do prawej i uciął zbędne zera). Jeżeli chcemy to możemy sobie jakoś bardziej sprecyzować jak ma Excel nasze liczby wyświetlać. Np. ustawienie liczby miejsc dziesiętnych na 3 w tym przypadku działa dobrze i daje równy słupek liczb.
Klikamy zapisz jako, wybieramy tekst rozdzielany znakami tabulacji (albo coś podobnego to się może różnić w zależności od wersji Excela) i viola! cieszymy się naszymi ślicznymi plikami tekstowymi. Nie wiem po co komu tak paskudnie wielkie pliki tekstowe, ale jak lubimy txt to niech będzie txt.
Myślę, że to już wyczerpało temat "Jak z EKG z physionetu zrobić sobie plik txt z użyciem Matlaba"
Po uruchomieniu tego magicznego skryptu polecam wyczyścić workspace (polecenie "clean") bo skrypt tworzy sobie milion zmiennych i przynajmniej je nie umiem znaleźć w worspace'ie tego czego szukam.
Klikamy prawym przyciskiem na nasz plik.mat i wybieramy load. W workspace'ie pojawi nam się kilka zmiennych (w zależności ile sygnałów było w naszym wejściowym pliku dat). Namierzamy ten który nas interesuje.
Teraz zasadniczo mamy 2 opcje:
Metoda 1: Wydajemy polecenie MATLABa "save NazwaPliku.txt -ASCII ECG_1" gdzie zamiast ECG_1 piszemy nazwę zmiennej którą chcemy zapisać.
To zasadniczo rozwiązuje problem, bo mamy plik .txt w którym mamy zapisany sygnał jak to określiłaś "w postaci cyfr". Tyle że zapisany jest on z dużą dokładnością i w notacji wykładniczej. A to może przeszkadzać. Pewnie da się to zrobić bezpośrednio w MATLABie, ale nie chce mi się szukać jak. Tu z pomocą może przyjść metoda 2 (pomijamy metodę 1):
Metoda 2: Otwieramy naszą zmienną w variable editorze (dwuklik na nazwę zmiennej). Ctrl-A , Ctrl-C, Ctrl-V do Excela. W zależności od wersji MATLABA, Excela i systemowego ustawienia symbolu dziesiętnego Excel może widzieć nasze dane jako tekst (justowane do lewej). Chcemy żeby widział to jako liczby. Naciskamy Ctrl-F i w zamień zamienimy przecinek na kropkę (lub kropkę na przecinek) tak żeby Excel widział dane jako liczby (wyjustował do prawej i uciął zbędne zera). Jeżeli chcemy to możemy sobie jakoś bardziej sprecyzować jak ma Excel nasze liczby wyświetlać. Np. ustawienie liczby miejsc dziesiętnych na 3 w tym przypadku działa dobrze i daje równy słupek liczb.
Klikamy zapisz jako, wybieramy tekst rozdzielany znakami tabulacji (albo coś podobnego to się może różnić w zależności od wersji Excela) i viola! cieszymy się naszymi ślicznymi plikami tekstowymi. Nie wiem po co komu tak paskudnie wielkie pliki tekstowe, ale jak lubimy txt to niech będzie txt.
Myślę, że to już wyczerpało temat "Jak z EKG z physionetu zrobić sobie plik txt z użyciem Matlaba"

Ostatnio zmieniony 20 kwie 2012 12:46 przez may, łącznie zmieniany 1 raz.
plik .dat
No właśnie doszłam do tego jak zapisać w matlabie w postaci pliku .txt, ale niestety są to liczby dużą dokładnością i notacją wykładniczą, a ta druga metoda coś nie działa. Z tych krzaczków z pliku .mat nie chcą sie zrobić cyferki.
-
- Posty: 96
- Rejestracja: 20 lut 2012 12:30
- Wersja środowiska: LabVIEW 2014
- Lokalizacja: Katowice / Ruda Śląska
plik .dat
Ehh, nie bardzo wiem jak może nie działać. Zrobiłaś wszystko tak jak tam opisałem? Nie bardzo wiem gdzie masz jakieś krzaczki. W pliku .mat żadnych krzaczków nie ma. A przynajmniej być nie powinno. Załóżmy że masz zmienną w MATLABie (a masz, bo jeżeli udało ci się zastosować pierwszą metodę, to masz te sygnały odczytane z pliku dat i poprawnie zaimportowane z pliku mat). W okienku workspace MATLABa (jak nie ma takiego okienka to kliknąć desktop->workspace) dwukrotnie klikasz zmienną np. ECG_1. Powinno pojawić się okienko "variable editor" które wygląda jak tabelka excela. Powinien się w nim znajdować jeden słupek liczb (nie krzaczków!). Kopiujesz - wklejasz do excela. Formatujesz sobie wyświetlanie liczb w excelu. Zapisujesz do txt. Nie bardzo wiem który moment tego procesu może nie działać. I tak na przyszłość - pisz bardziej rozbudowane opisy problemów - wtedy łatwiej jest pomóc i nie trzeba się dopytywać. "Coś nie działa" to problematyczna definicja problemu 

Re: plik .dat
Dziękuję bardzo za pomoc. Już wszystko jest tak jak powinno. Mam nadzieję, że reszta programu jest dobrze i sieci neuronowe będą się uczyć tak jak powinny.
Re: plik .dat
Najłatwiej uruchomić w LabVIEW skrypt MATLAB'a - wczytać plik .dat i zapisać go do .txt, a potem wczytać w LV wygenerowany przez Ciebie plik. Tylko pamiętaj żeby użyć którejś ze struktur sekwencji 
Pozdrawiam i życzę miłego dnia

Pozdrawiam i życzę miłego dnia
