Strona 1 z 3
Czy mógłby ktoś na to rzucić okiem ..
: 27 sty 2006 02:13
autor: serkriz
i powiedzieć mi jak moge z tej tablicy pobrać tylko co np.:10 próbke??
W pamięci wewnętrznej mikrokontrolera mam tylko miejsce na 100 bajtów. Jak ustawie 100 próbek (czyli będę miał 100 kolumn=100bajtów) w labview to nie ma z tym problemu ale jest problem z odwzorowaniem przebiegów. Najlepiej jest jak ustawiam np.:60000 próbek (60000 kolumn=60000bajtów) i mam wtedy dobrze odworowane przebiegi. Ale moge tylko co 600-setną kolumne wysłać do mikrokontrolera.
Jak to zrobic???
I jeszcze jedno : jak zatrzymać program po jednym obiegu(tzn.wysle 100 kolumn i się zatrzyma)
Za wszelkie uwagi też będę wdzięczny.
Re: Czy mógłby ktoś na to rzucić okiem ..
: 29 sty 2006 18:54
autor: serkriz
Czy wogóle istnieje taka możliwość aby było można z tablicy pobrać co np.: 4 kolumne? Narazie to nie znalazłem bloku który by to robił i nie wiem czy dalej tracić na to czas czy szukać innego rozwiązania.
Re: Czy mógłby ktoś na to rzucić okiem ..
: 29 sty 2006 19:06
autor: wino
proste i nie skomplikowane
zrób sobie z tego subVI'a i już masz bloczek do pobierania co 4 elementu z tablicy
Re: Czy mógłby ktoś na to rzucić okiem ..
: 29 sty 2006 20:14
autor: jogurt_owocowy
Jeszcze prostsze i mniej skomplikowane(i bez zagadek) byłoby użycie klocka Decimate Array - działa tylko na tablicach jednowymiarowych.
Jeśli chodzi o tablicę dwuwymiarową to do tego gotowego klocka nie ma, więc trzeba albo wykorzystać sposób z pętlą a w nim użyć Array Subset do pobierania danej kolumy tablicy i wstawić do tablicy wyjściowej za pomocą np. Build Array. Albo można np. wykorzystać Delete From Array do kasowania kolumn niepotrzebnych. Albo jak ktoś jest leniwy i nie chce mu się wstawiać pętli można zrobić Reshape Array, potem Decimate Array, a potem znów Reshape. Sposobów jak widzisz jest mnóstwo. (Wybierz ten najszybszy, a potem napisz na forum który to;) )
Re: Czy mógłby ktoś na to rzucić okiem ..
: 29 sty 2006 20:39
autor: wino
ale zagadka:(
zycie jest pełne zagadek i zagadki sa fajowe
(mozna użyc tez indeks arrej)
mnostwo jest sposobów ale zagadka to zagadka i musi sie pojawic
a taka fajna była,

Re: Czy mógłby ktoś na to rzucić okiem ..
: 29 sty 2006 20:58
autor: serkriz
Ale jak w bloku Delete From Array ustawić żeby wyrzucało te które nie chcę? Bo tam chyba tylko można ustawić od której kolumny chcemy wyrzucić i ile pod rząd ale jak wyrzucić cztery i jedna zostawić i znowu wyrzucić cztery i jedna zostawić itd...
Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 00:05
autor: jogurt_owocowy
Ano trzeba wtedy np. wrzucić bloczek Delete From Array do pętli for takiej jak na rysunku. Zagadka: ile razy musi się obrócić pętla for w tym wypadku? ;)
Pozdrawiam
Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 02:30
autor: serkriz
Odpowiedź: tyle razy ile jest ustawione w "co którą kolumne zostawić".
Następny raz : WIELKIE DZIÄ
Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 20:11
autor: Blamek
jedna rzecz po rozwage, jesli kasujemy wiersz z tablicy to zmianie ulega CALY obszar pamieci -> powstaje nowa tablica, w nowym miejscu pamieci, kod moze jest krotki i zwiezly, ale moze zajac sporo pamieci (serkriz wspomina, ze ma dosc duze tablice).
Moja propozycja wyglada tak, kryteria wyboru elementow moga byc dowolne, ja chce zwrocic uwage na sposob postepowania z tablicami: tworzymy tablice o zadanych wymiarach = rezerwujemy dlan pamiec, a pozniej tylko wybiorczo zmieniamy zawartosc wczesniej zarezerwowanych obszarow pamieci. Roznica w predkosci jest bardzo duza, nie mowiac juz o obiazeniu pamieci.
Jesli dane maja docelowo trafic na zewnatrz to moze wogle warto zrezygnowac z dopisywania ich do tablicy i wysylac je odrazu wewnatrz petli?
Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 20:22
autor: wino
chciałem zauważyc ze blamek rozwiazał moja zagadke.
moze nie wykorzystał mojego pomysłu w całości, ale zagadka została rozwiazana!!<brawo>

Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 20:26
autor: Blamek
rozumiem ze chodzi o modulo, bo z zamienianiem elementow tablicy chyba jestem oryginalny

Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 20:52
autor: wino
oczywiscie ze o modulo mi chodziło
ale czy tak nie bedzie szybciej petla wykonuje sie jakies 9 razy mniej
wiec oszczednosc czasu jest

Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 21:00
autor: serkriz
no to bedzie tablica o wymiarze 8x65000 . Ale tylko co 650 kolumna będzie pobierana więc utworzy mi macierz 8x100.
Tak na marginesie: czy jest jakikolwiek sens tego co robie? bo jak pobiore co 650 próbke to otrzymam zupełnie coś innego (przebieg prostokątny przy stosunku sinus do trójkąta 1:50 to dosłownie siekanka)
Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 21:31
autor: Blamek
wino: faktycznie wykombinowales ze jest szybciej, choc tu juz nie wytargujesz wiele bo operacja ta nie jest az tak czasochlonna (najlepiej zapusc profilera i zobacz).
Ale i tak pochwalam

Re: Czy mógłby ktoś na to rzucić okiem ..
: 30 sty 2006 21:50
autor: jogurt_owocowy
W porównaniu z waszymi pętlami moja jest dość niepozorna ale działa git ;)
W prostocie siła: działa ciut szybciej, niż ta z rysunku Blamka(co 10 kolumna, tablica I32, 2000*2000).
Jedyny zgrzyt to fakt, że nie da się programowo ustawić co którą kolumnę zostawić(albo o tym nie wiem).
A jak chcesz sobie sprawdzić czy jest sens tego co robisz to najlepiej zrób to w Matlabie. Tam pobranie co np. 10 kolumny to napisanie Tablica=Tablica(:,1:10:65000); więc roboty z tym masz niewiele i zaraz zobaczysz czy gra jest warta świeczki.
Pozdrawiam(: