Strona 1 z 1
2D array
: 24 paź 2009 12:23
autor: luke87a
Zapisuję 2D array przez write to spreadsheet file. Kolumny mają różną ilość elementów i w tych o mniejszej ich liczbie są dopisywane zera. I to dopisywanie zer chciałbym jakoś wyłączyć.
Re: 2D array
: 24 paź 2009 13:30
autor: coolfon
W tablicy 2D kolumny zawsze mają tą samą ilość elementów, nie ma "krótszych" kolumn... Co znajduje się w Twojej tablicy przed zapisem? Jeśli są to wartości liczbowe, to te zera na pewno tam są. Chyba że w którymś momencie składasz swoją tablicę 2D z tablic 1D o różnym rozmiarze - wtedy brakujące elementy są uzupełniane zerami.
Jeśli bardzo Ci zależy, żeby przy zapisie te zera zniknęły, możesz sobie przekonwertować tablicę liczbową na tablicę stringów, a następnie wszystkie stringi '0' zamienić na 'empty string'. Jednak to usunie wszystkie zera, nie tylko te uzupełniające...
A tak w ogóle, to lepiej się rozwiązuje problemy, gdy ma się kod przed oczami. Bo teraz jest takie wróżenie z fusów ;)
Re: 2D array
: 25 paź 2009 00:51
autor: smiga
Pomysł kolegi Coolfon'a jest jak najbardziej OK - z drobną modyfikacją:
Re: 2D array
: 25 paź 2009 14:35
autor: jogurt_owocowy
Niestety nie rozwiązuje to problemów autora.
Nie chodzi o to, żeby zamienić wszystkie zera na puste stringi, a tylko te "zapychacze" uzupełniające krótsze kolumny do długości najdłuższej z nich.
Re: 2D array
: 25 paź 2009 19:53
autor: luke87a
Składam tablicę 2D z paru 1D. Dzięki Waszym wskazówkom rozwiązałem problem. Umieszczam programik.
Re: 2D array
: 25 paź 2009 20:00
autor: smiga
Można spróbować jeszcze coś takiego dodać ... to wywala "zapychające" zera na końcu:
Re: 2D array
: 25 paź 2009 21:35
autor: vugie
jogurt_owocowy pisze:Niestety nie rozwiązuje to problemów autora.
Nie chodzi o to, żeby zamienić wszystkie zera na puste stringi, a tylko te "zapychacze" uzupełniające krótsze kolumny do długości najdłuższej z nich.
A żeby to uzyskać należy na etapie składania tablicy 2D z tablic 1D każdą z nich "zbundlować" do jednoelementowego klastra. Powstanie tablica 1D klastrów, z których każdy zawiera tablicę 1D floatów. Tylko w ten sposób każda podtablica (wiersz) może mieć różną ilość elementów. Na takiej tablicy nie zadziała jednak funkcja Write to Spreasheet. Trzeba zapisywać linia po linii używając np. Format to File.