Matlab jsem si na škole velice oblíbil a dělat něco více matematického, jistě bych zvážil koupi licence. Tím spíš, že Matlab jede na Linuxu. Jinak jsem zkoušel Octave a Scilab a zatím se mi osvědčila jedna odnož Scilabu – Scicoslab. Jeho velkou slabinou je pro mě jen strohý a nepřehledný help.
S Matlabem na Linuxu jsem delal nekolik let (skoncil jsem s tim pred peti lety). Slapal dobre, ale GUI bylo oproti sve windowsove verzi priserne – nedalo se v nem delat.
Velka vyhoda Matlabu je, ze existuji velmi dobre vyladene toolboxy. Nebyvaji sice zadarmo, ale umi toho opravdu hodne. Tohle je podle me nejvetsi prekazka pri pouzivani napriklad Octave.
„Tohle je podle me nejvetsi prekazka pri pouzivani napriklad Octave.“
To samozřejmě není problém nijak specifický pro Octave. Poptávka uživatelů po svobodném softwaru mnohonásobně převyšuje nabídku, ale je často vesměs „prázdná“, tzn. uživatelé by sice něco chtěli, ale nejsou ochotní k tomu přispět.
Přesto balíčků pro Octave postupně přibývá, jen musíte vědět kde hledat.
a) asi si nepochopil podstatu veci, kazda alternativa je dobra, chlapec sa riadne nadrel a niekomu sa to urcite moze hodit
b) onoho casu na som chcel na katedru kupit matlab, kedze sme chceli do vyuky (Spracovanie signalov atd.) zaradit volajake numericke cvicenia. Zastupca firmy s pekne znejucim menom mi ponukol licenciu za 1 milion korun, s tym, ze LEN pre skolstvo mi da 90% zlavu, s tym, ze je to licencia LEN pre katedru a s tym ze LEN pre studentov ktori navstevuju prednasky z katedry a LEN pod podmienkou, ze na katedre bude niekto, kto bude fyzicky zodpovedat za to, ze vsetky licencne podmienky budu dodrzane a nikto ten program necmajzne.
Trochu ma to eroticky naladilo, takze vysledok je nasledujuci:
→ Python + iPython + matplotlib + scipy v plnej miere nahradi matlab v standardnej aj nestandardnej urovni (+ hromada veci, o ktorych sa matlabu ani nesniva)
→ wxPython + wxGlade spacha k programikom aj GUI, ak treba …
→ nieco ako simulink sme si s trochou bastlenia v Pythone (ngspice + gEDA) vyrobili aj sami pozri
http://kiwiki.fmtnuni.sk/mediawiki/index.php/Simul%C3%A1cie_a_modelovanie
Cele to okrem trochy casu a radosti z roboty nestalo nic … vsetko samozrejme beha vyhradne len na Linuxe a ak niekto papuluje, ze mu tam nejaka featura chyba, tak je vykopnuty s tym, ze nech si to tam dopise sam.
c) pokial potrebuju studaci rychlo spachat nejake grafy z labakov, tak na to pouzivaju Scidavis, uz sa tu tusim kedysi preberal …
I po vašem vysvětlení stále nechápu, proto se znovu ptám
PROČ?
a pokud jste nepochopil, tak zároveň odpovídám:
scilab, octave.....
a můžu přidat derive již zmiňovaný Scidavis a další
prostě si myslím, že by bylo lepší, kdyby týpek raději tu energii věnoval třeba k napsání nějakého fajn toolboxu do scilabu…
jinak samozřejmě pokud ho to baví…
PS: jak už jsem tu někde psal, matlab sám o sobě si dnes už nikdo nekupuje – to je jenom nadstavba lapacku a k tomu vám bez problémů poslouží cokoliv (i vlastní program v céčku). To co dělá matlab tak cenným je ukrutný množství nápověd a toolboxů a ty za tu cenu rozhodně stojej a nevěřím, že je někdy komunita dokáže nahradit (na scilabu nebo octave, které se dostali asi nejdál, je to dobře vidět.
k vašemu bodu b)
1.) u licence za sw kde dostáváte slevu 90% mi požadavky přijdou celkem normální
2.) uvědomte si, že ještě v polovině 90. let se matlab ani nesměl z USA vyvážet kuli (samozřejmě nesmyslné národní bezpečnosti)
3.) už nestojí mega http://www.humusoft.cz/produkty/matlab/cenik/ a ceny podle mě odpovídají tomu co dostáváte (a nejsem dealer mathworks ;)
4.) pokud vám řešení s pythonem vyhovuje – proč ne, ale připadá mi to jako drbání levou rukou za pravým uchem. Nevím co učíte (u nás image/signal processing, fuzzy, neuron., regulace/automatizace, hodí se filter design toolbox, image acquisition toolbox…)
Studentům u nás na výuku doporučuji raději Octave má s matlabem kompatibilní velkou část příkazů a výhodou je, že nápověda je k matlabu přístupná zdarma (http://www.mathworks.com/access/helpdesk/help/helpdesk.html) a s QToctave je celkem v poho.
výsledek: studenti u nás mají „matlab“ a nekradou a mají nápovědu a všude spokojenost. Na výuku mají multilicence (podle mě trochu zbytečnost) ale budiž
5.) jako alternativu doporučuji také vyzkoušet nabídku Metacentra – pokud jste EDU, můžete matlab zdarma používat a pokud jedete na linuxu, tak i pouštět GUI na vzdálených Xkách
ser.u na to du domů
tak som si ten cennik pozrel – standardne ceny
Matlab (sietova licencia 1 klic)
251 980.-
Matlab Compiler
624 980.-
Simulink
374 980.-
Pri vsetkej ucte, pokial gcaltool pocita dobre, tak je to
1251940 korun
A to to este v podstate prd makove vie, ziadne toolboxy …
Podotykam, citat:„…ale připadá mi to jako drbání levou rukou za pravým uchem …“ ze v slovencine ma slovicko drbani trochu iny vyznam … ale celkom dobre vystihuje Vas pristup k teme clanku a oceneniu roboty toho mladenca, ktory vytvoril celkom pekny program.
Pokial ide o literaturu, pre python, scipy, matplotlib su toho (zadarmo) mraky, ked niekto nevie po anglicky, je to jeho chyba, staznosti sa podavaju na lamparni v Hornych Ozorovciach.
Pre uplnost – ako kompilator uzivatelskych modulov do pythonu pouzivame gcc+swig.
Zelam pekny den a vela uspechov.
Peter
Neodpověděl jste mu na zásadní otázku, která zajímá i mě. Proč jste to dělal(i)? Proč, když existuje scilab a octave (a další, ale tyhle dva jsou asi nejdále). Proč, když vaším cílem je evidentně výuka s matlab-like programem. Proč jste tu svou píli raději nesměřovali buď k vylepšení některého z daných programů, nebo vytvoření/vylepšení nějakého modulu/toolboxu pro ně?
a) pana Edmund Percival Hillary-ho sa onoho casu pytali, naco sa trepal na ten znamy velky kopec, tak odpovedal, preto, lebo tam je
b) vysvetlovat vlastnosti pythonu a rozdiel v jeho strukture oproti kompaktnym systemom (scilab, octave) je asi zrejme k urovni diskusie asi zbytocne … ale pokusim sa – scilab, octave su relativne uzatvorene systemy, kde vyrobit nejaky vlastny nativny modul a zaradit ho do kniznic je znacne komplikovane (napr. blok, ktory mi reprezentuje vstupnu premennu, ktorej hodnota vylieza z nejakeho meracieho pristroja, pripojeneho cez RS232, USB alebo sa nachadzajuceho kdesi v sieti cez TCP/IP). Dtto to plati napr. v pripade, ze k nejakemu vypoctu/simulacii potrebujem spachat www rozhranie, zber dat z nejakeho zdroju v sieti alebo paralelne prepojenie viacerych simulacnych engine …
Ostatne to nemusi byt nic extra vedeckeho – uz obycajny system na zber dat z teploty v baraku, solarneho systemu a kurenia (=topeni), jednoducha komunikacia s mikrokontrolerom, vyhodnotenie, pristup k datam a prezentacia cez www je nad sily vyssie spominanych SW.
Vyskusal som si a trenoval som nejaku dobu intenzivne aj Scilab/Scicos, aj Octave a zbachat tam daco svoje vlastne je nekonecny pribeh. Scilab ma hromady casti kodu napisane este vo Fortrane a prelozene do C pomocou for2c.
Odporucam vyskusat si to na vlastnej kozi, potom budete lepsie vediet, o co kraca …
c) tymto musim pokladat z mojej strany diskusiu za uzatvorenu, pracovna prestavka skoncila a musim sa venovat aj produktivnej praci.
Zelam vsetkym diskutujucim vela zdaru.
Peter
Vyrobit „nativní“ (předpokládám že tím myslíte modul v C++ nebo tak) modul v Octave je v zásadě jednodušší než v NumPy/SciPy klasickou cestou. Scipy.Weave či jak se to jmenuje to trochu zvrátí, ale rozdíl mi pořád nepřijde podstatný. Horší je, že C++ API Octave není tak docela stabilní a dost bídně dokumentované. Ale pracuje se na tom.
Máte pravdu, že nástroje jako Octave začnou za Pythonem pokulhávat, když chcete výpočet nějak propojit „se zbytkem světa“ – třeba s nějakým hardwarem, prostě proto, že v Pythonu už to všechno je.
Je tu ale i druhá strana mince. Především, komfort syntaxe jazyka dělaného extra na výpočty je už z principu větší, než obecného jazyka jako je Python.
Psát a.T místo a.' ještě není žádná hrůza (ale nepoužívejte v NumPy proměnnou T :), ovšem třeba nic takového jako operátor \ nemáte. Explicitní konverze objektů Array na Matrix a podobné věci jsou pro člověka zvyklého na komfort Octave hrozná otrava. Jazyk Matlab je v tomhle zkrátka „chytřejší“ – dělá víc automatických konverzí za vás. O to hůře se to pak implementuje, nebo v tom nedej bože hledají chyby :)
Za velké mínus NumPy považuju jeho zoufalou neochotu se sestavit s něčím jiným než ATLASem, případně referenčním BLASem.
ATLAS je sice dobrý, ale některé nesvobodné implementace BLAS mu dají celkem na prdel, a když je mám, tak bych je samozřejmě chtěl využít.
Jsou tu i další věci, třeba efektivita mapování na BLAS funkce, ale nemá smysl do NumPy rýt. NumPy je výborný kus software, ale jeho kvality oproti alternativám oceníte zejména až když chcete své výpočty přenést třeba na webový server.
Za zmínku stojí, že výpočty v Octave lze také vnořit do Pythonu velmi snadno pomocí Pytave. Ovšem používat dva jazyky je zpravidla horší než jeden, pokud už teda náhodou oba dva neumíte :)
2Peter
evidentně máte problém s tím co vlastně chcete. Pokud budete chtít používat interpret určený pro matematické modelování (a je úplně jedno jestli matlab scilab nebo něco v pythonu) na komunikaci s měřícím HW, budete tyto problémy řešit nustále až do bodu kdy je nevyřešíte a budete zase hledat jinou cestu.
Doporučuji následující postup:
Matlab použijte na vytvoření modelu, simulaci a pod.
teprve následně vytvářejte embedded systém s programem v C/C++
to je opravdu jediné a univerzální řešení
vaše řešení možná funguje teď na měření teploty, ale až budete chtít např. vyčítat data z webcamery a provádět nějaké zpracování obrazu, nebo grabovat něco z měřící karty v reálném čase, nebo posílat něco po síti… budete zase v prd…
PS: né že bych to sem chtěl zase tahat, ale v MATLABu (o němž říkáte, že za ty prachy nic nedostáváte) je např. perfektní image acquisition toolbox nebo Instrument Control Toolbox který by Vám hodně uspořil práci a ten čas byste mohl strávit např. přemýšlením o problému ne o prostředcích
argument o tom, že vaše řešení v pythonu (do kterého jistě nevidí ani váš kolega vedle v kanceláři) mi připadá nesmyslný
a) viem(e) velmi presne co chceme
b) komunikaciu s pristrojmi v laboratoriu aj pri ostrom pouziti v terene v Pythone mame zvladnutu uplne perfektne (cez pyserial alebo vlastne nativne moduly napisane v C/C++ a previazane s Pythonom cez SWIG), Linux s tym nema problem
c) pre embedded systemy pouzivame hybridne procesory PSoC (programovane v ASM …)
d) Python je u nas zaklad – pythonovske programy sa zabavaju s pristrojmi (HP Agilent, Tektronix, Fluke, Rigol …), PSoC, riadia, meraju, vytahuju data zo solid state diskov, matematicky spracovavaju data, kreslia grafy v realnom case, ukladaju do databaz, prediktivne simuluju, generuju priamo reporty vo formate OpenOffice, dynamicky vyrabaju www prezentacie dat a robia este kopy inych veci, co sa mi nechce pisat …
Kto ma miliony navyse, zaiste si velmi rad kupi Instrument Control Toolbox, my to vybavime mozolom na riti … ale aspon mame z roboty radost
e) odpovedal Vam Mark o par komentarov nizsie, ktoremu tymto zaroven dakujem
nevím proč vám tolik leží v žaludku cena matlabu (když ho stejně nekupujete) ,ale jednoduchá otázka:
pracujete zadarmo?
jinak doporučuji jednoduchý výpočet ⇒ člověkohodiny X plat
jinak na vašem řešení python → SWIG → C++|ASM vidím dokonalý příklad podpírání klacku klackem
PS: až se rozhodnete, že vás to v práci nebaví – rozdejchá to něko jiný?
máme tu několik profesorů se superskvělými algoritmy na výpočty antén a všeho možného – bohužel v turbopascalu, basicu a podobně
jakmile takový člověk umře, nad jeho prací jako když se zavře voda…
ale hodně štěstí, pokračovat v diskuzi stejně nemá cenu, vzájemně se nepřesvědčíme
Ne tohle, opravdu nechápu. K čemu mu gratulujete? Že znovuvynalezl kolo? Jakou cenu má dělat vlastní řešení, když existují v diskuzi zmíněné scilab a octave?
Jako kdyby jeho cílem byly matematicko-technické SW jako takové, tak tomu v akademicné sféře rozumím. Ale když je jeho cílem používání matematicko-technického SW, tak to jde fakt mimo mě.
Pokud vytusite z puvodniho postu kontext pouziti, ktery autor v dalsich prispevcich uz konkretne popisuje, zjistite, ze autor se zrejme nepotrebuje nimrat v matematice, ale potrebuje aplikovat slozitejsi matematiku na nejaky realny vnejsi zdroj dat, signalu atd. a delat s nim dale i neco praktickeho.
Pokud Vami zminene programy, nemaji funkcionalitu podobnou Matlab Data Acquisition Toolbox, Image Acquisition Toolbox, Instrument Control Toolbox (vcetne IF k ruznym HW zarizenim) atd. nebo neumoznuji _snadno_ dopsat vlastni bridge k nejakemu v Linuxu podporovanemu zarizeni, jsou pro toto pouziti k nicemu… Matlab bud s vlastnimi potrebnymi doplnky, nebo jako engine k NI LabView se da zaradit do komplexnich systemu sberu a zpracovani dat ci rizeni, ale tohle pekne reseni vyjde na poradny balik penez… Kdyz je nekdo schopen obdobnou funkcionalitu vytvorit pomoci free/OSS SW, mohu mu jen blahoprat, protoze je to spousta prace.
Lidičky vy se mě snad asi zdáte!!! Tohle fakt nechápu zase já!
1)
Jednak by mě moc zajímalo na čem pracují ti, co tu tak halasně kritizují a radí na čem by měl pracovat člověk, který má tu odvahu vytvořit vlastní projekt, starat se o něj a ještě jej zveřejnit, aby jej mohli (zdarma a bez omezení) využívat i jiní lidé. Moc rád bych zkritizoval i jejich projekty a posoudil jak moc jsou potřebné, nebo zbytečné. Nebo zda – jak už také padlo – by nebylo náhodou užitečnější pracovat na něčem jiném.
2)
Svět svobodného software se vždycky pyšnil tím, že na všechno existují alternativy a je z čeho vybírat, má možnost něco nabídnout každému. Což nutně znamená, že existují duplicitní projekty. projekty které sice nemusí nutně vyhovovat všem, ale své uživatele si najdou. Ty, které nejsou dost dobré zákonitě skončí. Chtěl bych vidět projekt nebo distro, které bylo ve svých začátcích absolutně dokonalé a bez chyby…
3)
Existují mraky komunikačních programů, webbrowserů, textových editorů, vývojových prostředí, emulátorů terminálů, skriptovacích jazyků, atpd… to nikoho nesere. Ale když se na rootu napíše, že někdo pracuje na nějakém programu (navíc když exemplářů podobného typu je ve free softu jak šafránu, nebo je tak specifický jako v tomto případě) -nedej bože distribuci – tak jej tu málem ukamenují. Mám takový strach, že neklesá úroveň jen roota – vypadá to, že krutě klesá úroveň jeho čtenářů samotných… pak už chápu proč se tu s přehledem udrží takový poděs jako je Bednář.
4)
Jak si vlastně představujete, že to má vývoj pro Open Source vypadat? Tak, že člověk který má vlastní vizi a hodlá do ni investovat (i pro nás ostatní) svůj volný čas a námahu, to bude činit tehdy a podle toho jak si kdo z vás pískne? to je vaše představa svobody? S tím se jděte s prominutím (a klidně i bez něj) vycpat…
Myslím, že ještě velmi zajímavá alternativa je program Mirai – podívejte se například na screenshoty
Naprogramovala to vloni slovenská autorka a pokud vím, snažila se, aby byl dodáván do OLPC.
Jedná se o grafický nástroj, který používá jako výpočetní backend Octave.
Rozdílem oproti Maplu a jiným je zadávání výrazů: člověk zadává matematické výrazy „graficky“ a interaktivně – podobně jako ve Wordu (například člověk vloží integrál a kurzor automaticky skáče po políčkách integrálu (hranice intervalu, integrovaný výraz, …)).
Bohužel autorka programu již nežije a program se tedy dál nevyvíjí. Nicméně je šířený jakožto open source.
Chtěl bych se zde diskutujících zeptat… Kdysi v dobách MS-DOSu jsem potkal program, kde se do tabulky zadaly dvě hodnoty (souřadnice) bodů, program těmito body proložil křivku a vygeneroval funkci odpovídající této křivce. Umí to některý program zde zmiňovaný (i nezmiňovaný)? Děkuji za odpověď.
Neznám tento projekt do detailu, ale určitě bych nevynalézal další programovací jazyk a použil python, tak jako sage (http://www.sagemath.org), který pokročil dosti daleko v integraci mnoha různých toolkitů pro to či ono.
asi jako kazdej, kdo studoval techniku, jsem s Matlabem delal…
a podle mne je tahle recenze spatne napsana, jiste je super ze ma program spousty funkci, ale stejne dulezita je ta matika pod tim.
a na to se mel autor recenze vic zamerit, na spousty veci ktere se resi proste nestaci udelat gui frontend pro matematickou knihovnu nad double.
nebudu delat ramena, vim toho o matematice houby, ale prece jen nam do hlavy vtloukli par veci, jako je matematicka stabilita, ze vsechna ta cisilka za desetinou teckou nemusi byt nutne platna a ze existuji horsi a lepsi zpusoby jak vynasobit dve opravdu velke matice.
takze pokud nekdo recenzuje takovyto program, mel by ho trochu otukat pomoci par benchmarku.
(tohle neni vytka proti programu, jsem naklonen verit tomu, ze clovek s phd z matematiky je schopen implementovat vlastni matematickou knihovnu nebo si je vedom vlastnosti knihovny, kterou pouziva)
Je to správná připomínka. Program je postaven nad MPFR, z toho vyplývá, že se snaží o „absolutní“ přesnost výpočtů. Není to tedy další klon nadstavby nad BLASem/ATLASem. Je to o něco blíž systémům postaveným nad Maple a Mathematicou, i když symboliku to neumí, možná zatím. Jestli má nebo nemá cenu takovýto samostatný projekt cenu je otázkou, ale není to jen další zcela zaostalý klon. A na to, jak je toho kódu málo to vypadá zajímavě. Naopak porovnávat výkonnost maticového počítání s řešeními postavenými nad double nemá u tohoto řešení moc smysl. Bude o hodně pomalejší. Přesnost výsledků by měla být absolutní a nebo bude vyhlášena chyba. Takže opět má smysl srovnávat se schopnostmi jiných symbolických/multi precission systémů. Přitom vynalézání kola od začátku to není, stavý to vyšší vrstvu a algoritmy nad základem, který je dneska používaný třeba při překladu v kompilátoru GCC.