abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:11 | Nová verze

    Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Nová verze

    Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).

    Ladislav Hagara | Komentářů: 5
    včera 15:11 | Nová verze

    Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Humor

    Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.

    Ladislav Hagara | Komentářů: 4
    včera 11:33 | Zajímavý článek Ladislav Hagara | Komentářů: 0
    16.9. 21:44 | Nová verze

    Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    16.9. 17:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.

    Ladislav Hagara | Komentářů: 0
    16.9. 12:22 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.9. 00:11 | Nová verze

    Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (47%)
     (53%)
     (0%)
     (7%)
     (13%)
     (7%)
     (20%)
     (7%)
     (13%)
    Celkem 15 hlasů
     Komentářů: 1, poslední včera 13:49
    Rozcestník

    Dotaz: Ocave - prosím o radu

    24.4.2012 22:38 Standa
    Ocave - prosím o radu
    Přečteno: 246×
    Ptrosím o radu, jak naložit s následujícím problémem. V příslušné složce mám uložený obrázek bakterieBW.tif a v Octave mám napsaný následující kód, který má sečíst hodnoty jasu v jednotlivých pixelech.

    A=imread("bakterieBW.tif");
    s=0;
    for i=1:1:rows(A)
    for j=1:1:columns(A)
    s=s+A(i,j)
    end
    end

    Místo toho začne sčítat do okamžiku, kdy je hodnota v proměnné s=255 a pak už píše jen ty 255 a nic nepřičítá (přestože ten obrázek opravdu není černý ;-) ). Jistě je to nějaká blbost, ale už se s tím trápím dva dny a nemám ten správný nadhed. Děkuju předem za radu.

    Řešení dotazu:


    Odpovědi

    25.4.2012 01:50 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    no zřejmě je proměnná s o velikosti unsigned byte tak zkusit nadefinovat proměnnou alespon long.
    25.4.2012 08:57 Petr
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    Ale kdeže for, na takovéto triviality jsou předdefinované příkazy: s=sum(A(:))
    25.4.2012 14:23 Petr
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    Použije-li se příkaze whos A, tak Octave vypíše, že typ je uint8. Tak to přetypuj na double, tj. A=double(A), a bude to fungovat dle očekávání.

    Pokud je cílem sečtení nějakých nadprahových hodnot, tak ani tehdy by kód neměl obsahovat žádný for; což třebas takhle:

    s=sum(A(A>127))
    
    25.4.2012 15:39 Standa
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    No jo, nemám Octave ještě tak v paži, nenapadlo mě to takhle ... děkuju moc, už to chodí :-)
    25.4.2012 10:15 jkhkjhkhj
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    Je to dost zvlastni. Asi by mohlo pomoct:

    s=0.0; #! realne cislo, nikoli cele

    Ale jinak bude asi rychlejsi pouzit proste: s = sum(A(1:rows(A),1:columns(A));

    (jelikoz v octave jako interpretu se v kazdem cyklu musi nejak interpretovat skoro kazdy radek, kdezto funkce jsou obvykle implementovane pres rychlejsi C knihovny).
    25.4.2012 10:59 Standa
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    Pánové, děkuju. Zkusil jsem vaše návrhy, bohužel nepomohlo. Rozepíšu problém víc.
    Vyjel jsem si konkrétní hodnoty v buňkách A(1,1),A(1,2),...až A(1,20). Po řadě jsem získal tyto hodnoty: 16+15+15+16+16+15+15+15+14+15+15+15+16+17+18+20+22+25+30+36, což se rovná 366. Octave vytrvale hlásí těch svých 255. Až do ...+...+A(1,16)=253 ukazuje dobře, když k tomu přičtu A(1,17), vypíše 255 místo správných 275 a dál píše svých 255.
    Když jsem udělal pokus a místo hodnot z toho obrázku jsem napsal:

    % soucet prvku matice
    s=0;
    for i=1:1:10
    for j=1:1:10
    A(i,j)=i+j
    s=s+A(i,j)
    end
    end

    tak to funguje. Jestli mu nějak vadí, že je to z fotky? Ale to je asi blbost, pracuje s číslama... . A nebo jestli je to pro něj moc velké? Ale pak zase nechápu, proč se zastaví u tak malého čísla, jakým je 255. A ve "funkčním" příkladu taky neuvádím datový typ toho s.

    Jinak vím, že v tomto případě to lze udělat bez cyklu for, ale ve skutečnosti projíždím jednotlivé prvky tý matice a porovnávám s hodnotou prahu a sčítám ty s větší a ty s menší hodnotou zvlášť. Pro můj dotaz jsem jen vypreparoval to, co dělá problémy a napsal demonstrační kód.

    Takže prosím ještě jednou o pomoc :-). Díky.
    25.4.2012 11:21 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    A zkusil jste před cyklem do toho s zapsat nějaké velké číslo nebo sečíst dvě velká čísla? 255 je samozřejmě maximum pro hodnotu v unsigned byte a pokud více místa nemá, nic nepřičte, Otázka je proč si pro s rezervoval tak málo nebo jestli při té sčítací operaci nepřechází přes něco co mu provede limitaci.
    25.4.2012 11:30 Standa
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    Nezkusil, ale zkusil jsem do toho "funkčního" kódu místo do 10 sčítat oba indexy do 1000. Výpočet trval déle, nicméně nakonec vypadlo číslo s=1.0010e+009, což je asi dobře. Takže mu možná vadí něco na zdrojových datech, ale netuším co, když taky jen sčítá čísla. Nevím, co by mu mohlo provést limitaci, ty ukázkové kódy jsou kompletní, nic jinýho nedělají.
    25.4.2012 11:53 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    A jaký je rozdíl v tech zdrojových datech v tech vašich dvou příkladech? Také můžete zkusit to sčítání ještě přes jedno přiřazení.
    % soucet prvku matice
    s=0;
    for i=1:1:10
    for j=1:1:10
    A(i,j)=i+j
    b=A(i,j)
    s=s+b
    end
    end
    a to b bude normální číslo. možná provádí nějaké inteligentní odhady datových typů a pro ty čísla z obrázku má právě datový typ unsigned byte.
    25.4.2012 12:16 Standa
    Rozbalit Rozbalit vše Re: Ocave - prosím o radu
    tak jsem to podle rady upravil ... a výsledek je... 255 :-(

    % soucet matice
    A=imread("bakterieBW.tif");
    s=0;
    for i=1:1:rows(A)
      for j=1:1:columns(A)
      b=A(i,j);
      s=s+b;
      end
    end
    disp(s)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.