Problem z usuwaniem duplikowanych danych

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
bikemc
Posty: 5
Rejestracja: 21 lut 2017 01:23
Wersja środowiska: LabVIEW 2016

Problem z usuwaniem duplikowanych danych

Post autor: bikemc »

Cześć wszystkim!
Jestem po raz pierwszy na forum, tak więc chciałbym się przedstawić, mam na imię Mirek :)
W poszukiwaniu problemu, szukałem wiele informacji, także tych na zagranicznych stronach. Chciałbym rozwiązać taki problem:
Posiadam tablicę dwuelementową, która zawiera (niestety) powtarzające się wiersze:
0,00000 0,00000
0,00000 0,00000
0,00000 0,00000
1,00000 0,69600
1,00000 0,69600
1,00000 0,69600
1,00000 0,69600
2,00000 0,69950
2,00000 0,69950
2,00000 0,69950
3,00000 0,69933
3,00000 0,69933
3,00000 0,69933
3,00000 0,69933
4,00000 0,70075
4,00000 0,70075
4,00000 0,70075
5,00000 0,70300
5,00000 0,70300
5,00000 0,70300
5,00000 0,70300
6,00000 0,70517
6,00000 0,70517
6,00000 0,70517
7,00000 0,70571
7,00000 0,70571
7,00000 0,70571
7,00000 0,70571
...

Zapisuje dane do pliku. Chciałbym, by te elementy się nie dublowały. Jak to uczynić? Będę bardzo wdzięczny, bo już kilka dni nad tym siedzę :(
Załączniki
Oto schemat VI
Oto schemat VI
1.png (10.43 KiB) Przejrzano 10670 razy
Awatar użytkownika
mnawotka
Posty: 55
Rejestracja: 15 lut 2016 20:13
Wersja środowiska: LabVIEW 2017

Re: Problem z usuwaniem duplikowanych danych

Post autor: mnawotka »

Witam, ja poradziłem sobie w taki sposób. Jak dobrze pamiętam jest to bloczek pobrany z palety którą możesz zainstalować poprzez VI Package Manager , a paleta nazywała się jakoś OpenG Libraries - OpenG array.

W pierwszym kroku usuwasz duplikaty z np. pierwszej kolumny a następnie musisz tylko wybrać z tablicy 2D odpowiednie wiersze.

Sam bloczek nie załatwi Ci sprawy, jest to tylko podpowiedź. Sądzę że z resztą sobie poradzisz.

Bądź drugie rozwiązanie to przed zapisem sprawdzaj czy poprzednia wartość nie była równa (taka sama) wtedy tworzysz case czy zapisywać te wartości czy nie.
Załączniki
Zrzut013 2017-02-21, 07_26_33.jpg
Zrzut013 2017-02-21, 07_26_33.jpg (54.03 KiB) Przejrzano 10658 razy
S0004_Remove_duplicate_elements.vi
(13.85 KiB) Pobrany 372 razy
bikemc
Posty: 5
Rejestracja: 21 lut 2017 01:23
Wersja środowiska: LabVIEW 2016

Re: Problem z usuwaniem duplikowanych danych

Post autor: bikemc »

"Bądź drugie rozwiązanie to przed zapisem sprawdzaj czy poprzednia wartość nie była równa (taka sama) wtedy tworzysz case czy zapisywać te wartości czy nie."

Myślałem o tym cały dzień jak to rozwiązanie zaimplementować, byłoby najlepsze.. :( Musiałbym jakoś wyciągać ostatni wiersz z bazy i porównywać z nowym. Eh tylko jak?
Awatar użytkownika
mnawotka
Posty: 55
Rejestracja: 15 lut 2016 20:13
Wersja środowiska: LabVIEW 2017

Re: Problem z usuwaniem duplikowanych danych

Post autor: mnawotka »

A nie łatwiej zrobić tymczasową kontrolkę bądź rejestr przesuwny który trzyma poprzednią zapisaną wartość nazwijmy ją "a" i gdy masz nowy pomiar "b" sprawdzasz tylko czy wartości są sobie równe wtedy nie zapisujesz, jak się różnią zapis do pliku i tyle.

Z jakiej bazy korzystasz ?

Aby bardziej Ci pomóc musiałbyś wstawić projekt/kod aplikacji.

P.S używaj konwersji typów bo w pierwszym swoim poście przy indykatorze "numer" masz czerwoną kropkę - czyli typy Ci się nie zgadzają.
bikemc
Posty: 5
Rejestracja: 21 lut 2017 01:23
Wersja środowiska: LabVIEW 2016

Problem z usuwaniem duplikowanych danych

Post autor: bikemc »

mnawotka pisze:A nie łatwiej zrobić tymczasową kontrolkę bądź rejestr przesuwny który trzyma poprzednią zapisaną wartość nazwijmy ją "a" i gdy masz nowy pomiar "b" sprawdzasz tylko czy wartości są sobie równe wtedy nie zapisujesz, jak się różnią zapis do pliku i tyle.

Z jakiej bazy korzystasz ?

Aby bardziej Ci pomóc musiałbyś wstawić projekt/kod aplikacji.

P.S używaj konwersji typów bo w pierwszym swoim poście przy indykatorze "numer" masz czerwoną kropkę - czyli typy Ci się nie zgadzają.
"P.S używaj konwersji typów bo w pierwszym swoim poście przy indykatorze "numer" masz czerwoną kropkę - czyli typy Ci się nie zgadzają."
Dzięki, będę o tym pamiętał :)

"A nie łatwiej zrobić tymczasową kontrolkę bądź rejestr przesuwny który trzyma poprzednią zapisaną wartość nazwijmy ją "a" i gdy masz nowy pomiar "b" sprawdzasz tylko czy wartości są sobie równe wtedy nie zapisujesz, jak się różnią zapis do pliku i tyle. "
Miałeś rację, tak się udało, dzięki! :D
Awatar użytkownika
mnawotka
Posty: 55
Rejestracja: 15 lut 2016 20:13
Wersja środowiska: LabVIEW 2017

Re: Problem z usuwaniem duplikowanych danych

Post autor: mnawotka »

"P.S używaj konwersji typów bo w pierwszym swoim poście przy indykatorze "numer" masz czerwoną kropkę - czyli typy Ci się nie zgadzają."
Dzięki, będę o tym pamiętał :)
Przy zmiennych typu I16 lub U16 masz do czynienia z tym że Ci się liczba "przekręci", przy zmiennoprzecinkowych przy nie zachowaniu typów obcina Ci części dziesiętne. Ja też na samym początku zabawy w LV zapominałem o tym :)
bikemc
Posty: 5
Rejestracja: 21 lut 2017 01:23
Wersja środowiska: LabVIEW 2016

Problem z usuwaniem duplikowanych danych

Post autor: bikemc »

Mam jeszcze jeszcze pytanie, trudne (przynajmniej dla mnie).
Mam dwie tabele (troszkę jedna wynika z drugiej).

1,00000 0,84200
2,00000 0,83750
3,00000 0,83833
4,00000 0,83825
5,00000 0,84060
6,00000 0,84067
7,00000 0,83857
8,00000 0,83637
9,00000 0,83589
10,00000 0,83600
11,00000 0,83764
12,00000 0,83750
13,00000 0,83708
14,00000 0,83621
15,00000 0,83520
16,00000 0,83369
17,00000 0,83235
18,00000 0,83183
19,00000 0,83205
20,00000 0,81655
21,00000 0,82490
22,00000 0,82859
23,00000 0,83000
24,00000 0,83217
25,00000 0,83344
26,00000 0,83354
27,00000 0,83344
28,00000 0,83368
29,00000 0,83376
30,00000 0,83383
31,00000 0,83413
itd...

druga:
1,00000 0,84200
3,00000 0,83833
5,00000 0,84060
6,00000 0,84067
10,00000 0,83600
11,00000 0,83764
19,00000 0,83205
21,00000 0,82490
22,00000 0,82859
23,00000 0,83000
24,00000 0,83217
25,00000 0,83344
26,00000 0,83354
28,00000 0,83368
29,00000 0,83376
30,00000 0,83383
31,00000 0,83413
itd.

I teraz tak:3
chciałbym aby począwszy od 2 elementu drugiej tablicy realizowało mi się takie zadanie, że pobieram 2 poprzednie wartości (elementy 1,2) oraz 2 następne wartości. Potem kolejny element (drugi) czyli 5 pobiera z tej pierwszej tabeli znów 2 poprzednie i 2 następne i tak dalej. Dochodzimy do takiego rozwiązania jak na zdjęciu.

Na koniec obliczyć średnią arytmetyczną z danych kolumn.

Jakieś pomysły Waszych pięknych umysłów? :)
Załączniki
Dane.jpg
Dane.jpg (41.89 KiB) Przejrzano 10531 razy
Awatar użytkownika
aaddaas
Posty: 202
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Re: Problem z usuwaniem duplikowanych danych

Post autor: aaddaas »

Jeśli dobrze zrozumiałem intencje....
Załączniki
TAbele.png
Obrazek
bikemc
Posty: 5
Rejestracja: 21 lut 2017 01:23
Wersja środowiska: LabVIEW 2016

Problem z usuwaniem duplikowanych danych

Post autor: bikemc »

Dzięki! :)
Mam jeszcze takie pytanie, jak stworzyć tablicę 2 wymiarową w Function node, która ma 121 kolumn i x wierszy? gdzie x to wyznaczona już wcześniej ilość wierszy innej tablicy...
Awatar użytkownika
dajpanspokój
Posty: 145
Rejestracja: 05 lis 2015 08:15
Wersja środowiska: LabVIEW 2016

Re: Problem z usuwaniem duplikowanych danych

Post autor: dajpanspokój »

Hej
Jesli chodzi ci o formula node, to sie nie da w niej inicjowac tablic
To co mozesz zrobic to zainicjalizowac tablice przed wejsciem do formula node a potem wyciagnac taka ilosc elementow ktora chcesz
tablica w formula node.png
tablica w formula node.png (22.85 KiB) Przejrzano 10313 razy
Obrazek
ODPOWIEDZ