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 » 21 lut 2017 01:39

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
1.png
Oto schemat VI
1.png (10.43 KiB) Przejrzano 1767 razy

Awatar użytkownika
mnawotka
Posty: 32
Rejestracja: 15 lut 2016 20:13
Wersja środowiska: LabVIEW 2014
Has thanked: 1 time

Re: Problem z usuwaniem duplikowanych danych

Post autor: mnawotka » 21 lut 2017 07:39

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 1755 razy
S0004_Remove_duplicate_elements.vi
(13.85 KiB) Pobrany 47 razy

bikemc
Posty: 5
Rejestracja: 21 lut 2017 01:23
Wersja środowiska: LabVIEW 2016

Re: Problem z usuwaniem duplikowanych danych

Post autor: bikemc » 21 lut 2017 11:18

"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: 32
Rejestracja: 15 lut 2016 20:13
Wersja środowiska: LabVIEW 2014
Has thanked: 1 time

Re: Problem z usuwaniem duplikowanych danych

Post autor: mnawotka » 21 lut 2017 13:50

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 » 21 lut 2017 21:57

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: 32
Rejestracja: 15 lut 2016 20:13
Wersja środowiska: LabVIEW 2014
Has thanked: 1 time

Re: Problem z usuwaniem duplikowanych danych

Post autor: mnawotka » 22 lut 2017 07:13

"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 » 28 lut 2017 19:06

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 1628 razy

Awatar użytkownika
aaddaas
Posty: 182
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

Re: Problem z usuwaniem duplikowanych danych

Post autor: aaddaas » 02 mar 2017 15:59

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 » 10 mar 2017 09:09

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: 117
Rejestracja: 05 lis 2015 08:15
Wersja środowiska: LabVIEW 2014
Has thanked: 2 times

Re: Problem z usuwaniem duplikowanych danych

Post autor: dajpanspokój » 16 mar 2017 11:23

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 1410 razy

ODPOWIEDZ