Witam
Mam tablice jednowymiarową(przeszło 10 000 elementów) i nie wiem jak usunąc co drugi lub trzeci element z tej tablicy.
Z góry dzięki za pomoc.
Pozdrawiam
Usuwanie elementów z tablicy
Usuwanie elementów z tablicy
Ostatnio zmieniony 27 sie 2012 13:10 przez kedar50, łącznie zmieniany 1 raz.
- fajfi
- Posty: 185
- Rejestracja: 28 sty 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Wrocław
Re: Usuwanie elementów z tablicy
Cześć,
tak na kolanie zrobiłem mały przykład, mam nadzieję, że on coś rozjaśni.
Użyj funkcji "delete from array" i rejestru przesuwnego, dodatkowo trzeba zastanowić się nad indeksami kolejnych usuwanych elementów.
Pewnie nie jest to jedyna ani najelegantsza metoda, ale działa.
Pozdrawiam
Fajfi
tak na kolanie zrobiłem mały przykład, mam nadzieję, że on coś rozjaśni.
Użyj funkcji "delete from array" i rejestru przesuwnego, dodatkowo trzeba zastanowić się nad indeksami kolejnych usuwanych elementów.
Pewnie nie jest to jedyna ani najelegantsza metoda, ale działa.
Pozdrawiam
Fajfi
Ostatnio zmieniony 07 sty 2009 09:16 przez fajfi, łącznie zmieniany 1 raz.
-
- Posty: 5
- Rejestracja: 26 lut 2008 22:25
- Lokalizacja: Gdańsk
- Kontakt:
Re: Usuwanie elementów z tablicy
... lub w taki sposób
Re: Usuwanie elementów z tablicy
Pomysł z użyciem obiektów: Decimate 1D Array i Interleave 1D Arrays jest bardzo fajny, ale:
1. diagram powinien wyglądać nieco inaczej (usuwanie elementów 1.jpg),
2. jeśli rozmiar tablicy wejściowej nie będzie całkowitą wielokrotnością 2 lub 3, to niektóre jej elementy nie znajdą się w tablicach wyjściowych (są one równej długości).
Dołączam swoją propozycję (usuwanie elementów 2.jpg)
1. diagram powinien wyglądać nieco inaczej (usuwanie elementów 1.jpg),
2. jeśli rozmiar tablicy wejściowej nie będzie całkowitą wielokrotnością 2 lub 3, to niektóre jej elementy nie znajdą się w tablicach wyjściowych (są one równej długości).
Dołączam swoją propozycję (usuwanie elementów 2.jpg)
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Usuwanie elementów z tablicy
pod warunkiem, że wartość "co który element wyrzucić" jest stała i stała jest też lokalizacja pierwszego elementu do wyrzucenia.Pomysł z użyciem obiektów: Decimate 1D Array i Interleave 1D Arrays jest bardzo fajny, ale
Wadą pomysłów z Delete From Array oraz z Build Array jest konieczność ciągłych realokacji pamięci na tablicę.
Jeśli wydajność jest istotna, to lepiej najpierw obliczyć rozmiar tablicy wyjściowej uwzględniając także to, o czym pisał darekc (jeśli rozmiar tablicy wejściowej nie będzie całkowitą wielokrotnością X), alokować hurtem pamięć za pomocą Initialize Array i przepisać do tablicy wyjściowej odpowiednie komórki tablicy wejściowej (pojedynczo albo kawałkami - trzeba by sprawdzić co jest wydajniejsze).
Pozdrawiam
Re: Usuwanie elementów z tablicy
Witam. To rozwiązanie to trochę powtórzenie wcześniejszych, ale zakładam ze tak dużą ilość danych masz w jakimś pliku, np.: w pliku tekstowym. Nie ma tutaj problemu z ilością danych ( rozmiarem tablicy ) i wydaje mi się że pozwala to na usuwanie dowolnie wybranych danych,np: co piąty lub co dziesiąty.
Pozdrawiam
Pozdrawiam
...
Re: Usuwanie elementów z tablicy
Zgadza się, jeśli ważna jest szybkość wykonania kodu, to nie obejdzie się bez wstępnej rezerwacji pamięci na tablicę wynikową.
Istnieją jeszcze co najmniej 2 sposoby rozwiązania:
1. z użyciem struktury MathScript Node - tu jednak trzeba mieć zainstalowanego Matlaba i umieć się nim posługiwać, wystarczy jedno wyrażenie do usunięcia wskazanych elementów, 2. z użyciem struktury Formula Node - tu trzeba znać język C, no i trzeba rezerwować pamięć na tablicę wynikową.
Istnieją jeszcze co najmniej 2 sposoby rozwiązania:
1. z użyciem struktury MathScript Node - tu jednak trzeba mieć zainstalowanego Matlaba i umieć się nim posługiwać, wystarczy jedno wyrażenie do usunięcia wskazanych elementów, 2. z użyciem struktury Formula Node - tu trzeba znać język C, no i trzeba rezerwować pamięć na tablicę wynikową.