Entropy.htm 1 / 6 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/dtd/ xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="description" content="wprowadzenie pojęcia entropii ( informacyjnej )" /> <meta name="keywords" content="nbsp, http, html, href, target, type, text, help, matlab, octave, sourceforge, mathworks, informacji, funkcji, danych, fieldset, align, wikipedia, legend, function, textread, przyrządów, Matlaba, informationtheory, hostil, funkcja, entropy, demonstracji, akustyka09, structures, Shannona, importdata, akustycznej, programowania, middle, hspace, height, entropii, content, zajęciach, tekstowych, wczytać, strukturalnego, refrakcji, dydaktyka, application, uzyskamy, sumowania, informacyjnej, demonstracyjnych, darmowych, image, jpeg" /> <meta name="author" content="jacek Konieczny" /> <meta name="generator" content="coreeditor" /> <title>wprowadzenie pojęcia entropii ( informacyjnej )</title> <style> FIELDSET { background-color : white ; } </style> </head> <body bgcolor="yellow"> <p> <fieldset><legend align="center"> <b> <big> Zagadnienia tematyczne dotyczące <i> Matlaba </i> : </big></b></legend> Na najbliższych zajęciach ( w trzeciej dekadzie października br. ) zapoznamy się z nowym typem danych <i> Matlaba, </i> a mianowicie z <a href="http://docs9. chomikuj.pl/662897257,pl,0,0,matlab1.doc" target="_blank"> typem strukturalnym. < /a> Jednocześnie zapoznamy się z wyspecjalizowanymi funkcjami służącymi do odczytu zawartości plików tekstowych. Funkcje te, w odróżnieniu od znanej zapewne funkcji <a href="http://www.mathworks.com/help/matlab/ref/load.html" target="_blank" type="text/html"> load, </a> pozwalają na odczyt danych również z bardziej "urozmaiconych" plików tekstowych, tj. z takich plików tekstowych, w których poszczególne kolumny liczbowe opatrzone są nagłówkami - nazwami "rubryk". Te funkcje to : <a href="http://www.mathworks.com/help/matlab/ref/textread.html" target="_blank" type="text/html"> textread </a> oraz <a href="http://www. mathworks.com/help/matlab/ref/importdata.html" target="_blank" type="text/html"> importdata. </a> Pierwsza z tych funkcji, funkcja o nazwie <i> textread </i> może ignorować ( na życzenie! ) nagłówek wczytywanego pliku tekstowego, natomiast funkcja <i> importdata </i> wczytuje tekstowy nagłówek w <u>odrębny sposób</u> niż pozostały blok danych liczbowych. Funkcja <i> importdata </i> w postaci pewnej zmiennej typu "agregacyjnego" - zmiennej będącej <a href="http://www.kkiem.agh.edu.pl/dydakt/matlab/2012/matlab_zlozone. pdf" target="_blank" type="application/pdf"> strukturą ;</a> innym polem struktury jest wówczas nagłówek ( tekstowy ) wczytany z pliku, a jeszcze innym polem struktury wejściowej jest wczytana macierz liczbowa. Zatem zapoznawanie się z właściwościami funkcji < i> importdata </i> stanowi zarazem okazję do zapoznania się ze zmiennymi będącymi <i> strukturami. </i> Typ strukturalny ( w odróżnieniu od poznanego uprzednio typu <i> tablicy komórkowej < /i> ) ma swoje odpowiedniki w innych językach programowania. Odpowiednikiem <b> struktur </b> pakietu <i> Matlab </i> ( i jego darmowych zamienników ) są <b> rekordy </b> spotykane w takich językach programowania jak : <a href="http://pl.wikipedia.org/wiki/pascal_% 28j%C4%99zyk_programowania%29" target="_blank"> Pascal, </a> <a href="http://pl. wikipedia.org/wiki/delphi" target="_blank"> Delphi </a> czy najnowsze dialekty języka <a href="http://pl.wikipedia.org/wiki/basic" target="_blank"> Basic. </a> Oto zestaw linków na temat rekordów we wymienionych wyżej językach programowania : < br />
Entropy.htm 2 / 6 <li> <a href="http://www.delphibasics.co.uk/rtl.asp?name=record" target=" _blank">http://www.delphibasics.co.uk/rtl.asp?name=record</a></li> <li> <a href="http://home.agh.edu.pl/~horzyk/lectures/pi/ahdydpiwykl1.html" target="_blank" type="text/html">http://home.agh.edu.pl/~horzyk/lectures/pi/ ahdydpiwykl1.html</a></li> <li> <a href="http://www.keller.info.pl/materialy/zagadnienia_z_informatyki2. pdf" target="_blank" type="application/pdf">http://www.keller.info.pl/materialy/ zagadnienia_z_informatyki2.pdf</a></li> <p> W niektórych innych językach programowania ( takich jak np. <a href="http: //pl.wikipedia.org/wiki/c_%28j%c4%99zyk_programowania%29" target="_blank"> C </a> i języki względem niego pochodne ) złożone "agregaty" danych nazywa się po prostu <i> strukturami </i> : </p> <li> <a href="http://msdn.microsoft.com/pl-pl/library/64973255.aspx" target=" _blank">http://msdn.microsoft.com/pl-pl/library/64973255.aspx</a></li> <li> <a href="http://www.cplusplus.com/doc/tutorial/structures/" target=" _blank">http://www.cplusplus.com/doc/tutorial/structures/</a></li> <li> <a href="http://www.cprogramming.com/reference/struct/declare.html" target="_blank" type="text/html">http://www.cprogramming.com/reference/struct/ declare.html</a></li> <li> <a href="http://pl.wikibooks.org/wiki/c/typy_z%c5%82o%c5%bcone" target=" _blank">http://pl.wikibooks.org/wiki/c/typy_z%c5%82o%c5%bcone</a></li> <li> <a href="http://mathbits.com/mathbits/compsci/structures/define.htm" target="_blank" type="text/html">http://mathbits.com/mathbits/compsci/structures/ Define.htm</a></li> Zmienne strukturalne mogą posłużyć, podobnie jak <i> tablice komórkowe </i>, do przechowywania w "zwarty sposób" danych różnych typów ( np. liczb i napisów ). Można sobie wyobrazić najprostszą <i> tablicę komórkową </i> w postaci wektora, którego elementami są zarówno liczby, jak i napisy. Wektor taki możemy następnie zapisać i przechować ( pod wspólną nazwą! ) w pliku o formacie <a href ="http://pc.net/extensions/file/mat" target="_blank"> MAT </a> ; do tego samego celu równie dobrze można użyć zmiennnych typu strukturalnego. Tematyka ta była omawiana na zajęciach z <i> Matlaba II </i> w ubiegłym semestrze : <br /> <p> <a href="http://www.dydaktyka.cba.pl/april_29.htm" target="_blank" type=" text/html">http://www.dydaktyka.cba.pl/april_29.htm</a></p> W przypadku zmiennych typu strukturalnego właściwych dla <i> Matlab </i> mamy do czynienia z dość rozbudowanym zestawem wyspecjalizowanych funkcji obsługujących ten typ danych ( jest to zestaw bardziej rozbudowany w porównaniu z funkcjami obsługującymi typ strukturalny w innych językach programowania ), w związku z czym możemy mówić o jeszcze innych zastosowaniach typu strukturalnego ( będzie to temat innych zajęć ). Zestawienie funkcji obsługujących zmienne typu strukturalnego możemy znaleźć na następującej stronie WWW : <br /> <p> <a href="http://www.mathworks.com/help/matlab/structures.html" target=" _blank" type="text/html">http://www.mathworks.com/help/matlab/structures.html</a> </p><br /> <p> <fieldset><legend align="center"> <b> <big> Zagadnienia tematyczne dotyczące podstaw teorii informacji : </big></b></ legend> <p> Na poprzednich zajęciach poznaliśmy najprostszy wzór opisujący ilość informacji - wzór znany bądź jako <a href="http://books.google.pl/books?id= R5jJtiyAfxAC&pg=PA51&lpg=PA51&dq=[+%22Hartley+formula%22+ +%22Hartley%27s+formula %22+ +%22Hartley%60s+formula%22+]+-Shannon+information&source=bl&ots=SpG8DcGRkf& sig=pseqlpp7y_vlungjnjamjamu7da&hl=pl&sa=x&ei=jopeupzlmcpl4qtfzicicw&ved=0 CGEQ6AEwBw#v=onepage&q=[%20%22Hartley%20formula%22%20 %20%22Hartley%27s%20formula %22%20 %20%22Hartley%60s%20formula%22%20]%20-Shannon%20information&f=false" target="_blank"> wzór Hartley'a </a> bądź jako <a href="http://en.wikipedia.org/wiki/hartley_function" target="_blank"> funkcja Hartley </a> czy wreszcie jako <i> entropia Hartley'a </i> : <br /> <p> <img align="middle" alt="wzór Hartley'a" src="http://akustyka09.hostil.pl/ Hartley.gif" width=200 height=100 hspace=80 /></p> Wzór ów, w przytoczonej powyżej postaci, wiąże ilość informacji z prawdopodobieństwem wystąpienia zdarzenia, o którym się informuje. Wynika z niego
Entropy.htm 3 / 6, że ilość informacji jest malejącą funkcją prawdopodobieństwa wystąpienia owego zdarzenia. Zachowanie się tego wzoru w skrajnych przypadkach jest zgodne z intuicyjnymi oczekiwaniami. Zdarzenie pewne ( przy prawdopodobieństwie równym jedności ) nie niesie żadnej informacji, natomiast zdarzenie niemożliwe ( tj. o prawdopodobieństwie równym zeru ) niesie nieskończenie wiele informacji. Wniosek taki zgadza się z intuicją. Wyobraźmy sobie dwóch kierowców, którzy przejeżdżają przez jakąś okolicę - przez jakiś układ dróg. Przy tych drogach stoją drogowskazy, tabliczki z nazami miejscowości, itp. Jeden z tych kierowców doskonale zna tę okolicę, jeździ tamtędy codziennie. Oczywiste jest, że spotykane przez niego drogowskazy, tabliczki informacyjne czy znaki drogowe nie niosą dla niego żadnej informacji. Pojawienie się tych znaków w określonym miejscu drogi jest dla niego zdarzeniem pewnym. Inaczej ma się sprawa w przypadku kierowcy, który znalazł się w tej okolicy po raz pierwszy. Dla niego każdy znak drogowy czy drogowskaz niosą istotną informację. <br /> W przypadku złożonego zestawu ( zbioru ) zdarzeń wypadkową informację opisuje tzw. <a href="http://www.neuroinf.pl/members/danek/swps/2005/article.2005-04-14.4715/ getfile" target="_blank"> wzór Shannona, </a> zwany również <a href="http://www.shannonentropy.netmark.pl/" target="_blank"> entropią Shannona </a> : <br /> <p> <img align="middle" alt="wzór Shannona" src="http://akustyka09.hostil.pl/ Shannon.gif" width=250 height=100 hspace=80 /></p> Widać, że wzór ów przyjmuje postać <a href="http://pl.wikipedia.org/wiki/%c5%9 Arednia_wa%C5%BCona" target="_blank"> średniej ważonej. </a> Skąd taka postać owego wzoru? Ściągnijmy dodatkowe zdjęcia pozostałych przyrządów demonstracyjnych : <br /> <p> <form enctype="application/zip" action="http://akustyka09.hostil.pl/others.zip"> <input type="submit" value="niektóre z pozostałych przyrządów demonstracyjnych "> </form></p><br /> Założmy, że kompletujemy zestaw ośmiu zdjęć przedstawiających osiem przyrządów demonstracyjnych ; oprócz czterech wersji przyrządu do demonstracji refrakcji akustycznej mamy dwie wersje przyrządu do demonstracji dopasowania impedancji akustycznej ( pliki : <a href="http://akustyka09. hostil.pl/device_m2.jpg" target="_blank" type="image/jpeg"> Device_M2.jpg </a> oraz <a href="http://akustyka09.hostil.pl/device_ma.jpg" target="_blank" type="image/jpeg" > Device_MA.jpg </a> ) oraz dwie wersje przyrządu np. do demonstracji dyfrakcji / rozpraszania ( pliki : <a href="http://akustyka09.hostil.pl/device_rp.jpg" target="_blank" type="image/jpeg"> Device_RP.jpg </a> oraz <a href="http:// akustyka09.hostil.pl/device_rl.jpg" target="_blank" type="image/jpeg"> Device_RL. jpg </a> ). Informacje o tych podzbiorach przyrządów możemy do siebie dodawać, korzystając ze wzoru poniższego : <br /> <p> <img align="middle" alt="dwa sposoby sumowania informacji" src="http:// akustyka09.hostil.pl/support.gif" width=350 height=100 hspace=80 /></p> Górny wzór przedstawia sumowanie informacji o jednym pozbiorze czteroelementowym ( pozbiór zdjęć przyrządów do demonstracji refrakcji akustycznej ) oraz inforrmacji o dwóch podzbiorach dwuelementowych. Widać, że przy takim sposobie sumowania składnik czteroelementowy przeważa. Dlatego nie korzysta się z tego sposobu sumowania i w celu wyrównania udziału każdego ze składników ( każdego z podzbiorów ) stosuje się drugi, dolny wzór zaproponowany przez Shannona. <br /> Zajmijmy się jednak ponownie czteroelementowym zbiorem zdjęć różnych wersji przyrządu do demonstracji zjawiska refrakcji akustycznej. Na poprzednich zajęciach dzieliliśmy ten zbiór na dwie podgrupy dwuelementowe ; przy czym tego podziału można było dokonać na dwa sposoby biorąc pod uwagę jedno z dwóch kryteriów : <ol> <li> - kryterium starszeństwa : starsze wersje przyrządów - wersje nowsze ( udoskonalone ), </li> <li> - kryterium rodzaju źródła gradientu temperatury : przyrządy ze źródłami "świecowymi" i przyrządy ze źródłami elektrycznymi. </li> </ol><br />
Entropy.htm 4 / 6 Biorąc pod uwagę wszelkie możliwe sposoby podziału zbioru czteroelementowego na podzbiory dwuelementowe, można oszacować liczbę informacji niezbędnych do identyfikacji jednego elementu spośród czterech, stosując tym razem <i> wzór Shannona </i> : <br /> <p> <img align="middle" alt="wzór Shannona zamiast wzoru Hartley`a" src="http: //akustyka09.hostil.pl/byentropy.gif" width=400 height=80 hspace=80 /></p> Uzyskujemy zatem taką samą wartość ( 2 bity ) jak przy obliczaniu tej samej informacji przy pomocy <i> wzoru Hartley`a. </i> Nie zawsze jednak taka zgodność musi wystąpić. Załóżmy, że kompletujemy ośmioelementowy zbiór ośmiu zdjęć według następującej zasady : cztery zdjęcia różnych wersji przyrządu do demonstracji efektu refrakcji akustycznej, dwa zdjęcia dwóch wersji ( starszej i udoskonalonej ) przyrządu do demonstracji dopasowania impedancji akustycznej oraz dwie wersje jakiegoś innego przyrządu demonstracyjnego. Ten ośmioelementowy zbiór możemy pogrupować i " wewnętrznie zorganizować" na kilka możliwych sposobów - w tym na jeden sposób dość oryginalny. Możemy mianowicie w owym całym zbiorze ośmioelementowym wyodrębnić ( wyróżnić ) dwa podzbiory trójelementowe : podzbiór przyrządów "udoskonalanych" złozony zarówno z podzbioru wersji "starszych", jak i podzbioru wersji "młodszych". Na wersję starszą składałyby się zdjęcia : <a href="http://akustyka09.hostil.pl/ Refra_1.jpg" target="_blank" type="image/jpeg"> Refra_1.jpg </a>, <a href="http://akustyka09.hostil.pl/refra_2.jpg" target="_blank" type="image/jpeg"> Refra_2.jpg </a> oraz <a href="http://akustyka09.hostil.pl/ Device_M2.jpg" target="_blank" type="image/jpeg"> Device_M2.jpg </a> ; na wersją "młodszą" ( udoskonaloną ) składałyby się wówczas zdjęcia : <a href= "http://akustyka09.hostil.pl/refra_3.jpg" target="_blank" type="image/jpeg"> Refra_3.jpg </a>, <a href="http://akustyka09.hostil.pl/refra_4.jpg" target=" _blank" type="image/jpeg"> Refra_4.jpg </a> oraz <a href="http://akustyka09.hostil.pl/device_ma.jpg" target="_blank" type= "image/jpeg"> Device_MA.jpg </a>. Średnią entropię liczyłoby się wówczas według wzoru następującego : <br /> <p> <img align="middle" alt="obliczanie entropii dla podgrup trójkowych" src=" http://akustyka09.hostil.pl/fraction.gif" width=300 height=150 hspace=80 /></p> We wyniku obliczeń przeprowadzonych według powyższego wzoru uzyskamy wartość pośrednią pomiędzy 2 a 3 ; innymi słowy uzyskamy wartość ułamkową ( tzw. <a href= "http://pl.wikipedia.org/wiki/u%c5%82amek_niew%c5%82a%c5%9bciwy" target="_blank"> ułamek niewłaściwy </a> ) Wydałoby się, że taki wynik jest trudny do interpretacji, ponieważ liczba zapytań, liczba ważeń czy liczba wyborów dokonywanych przy pomocy "dwuelementowej" funkcji <i> menu </i> powinna być liczbą całkowitą. Jednak ten wynik "ułamkowy" można interpretować w taki sposób, że przy sprzyjających warunkach mogłyby wystarczyć dwie próby, aby jednoznacznie zidentyfikować wybrany element. Proszę spróbować sobie wyobrazić taką sprzyjającą sytuację. <br /> Wniosek zasadniczy jest jeden : nie zawsze szacowanie liczby informacji różnymi metodami dla określonego zbioru danych da ten sam wynik. Wyniki mogą okazać się różne w zależności od sposobu "wewnętrznej organizacji" ( np. sposobu wyodrębniania jakichś podzbiorów ). <br /> <p> <fieldset><legend align="center"> <b> <big> Ćwiczenie z obliczaniem entropii informacyjnej według ostatniego wzoru </big></b></ legend> Liczby niezbędne do przeprowadzenia tego obliczenia ( tj. 3, 3 i 2 ) proszę wczytać z odpowiedniego pliku. Proszę w tym cełu załadować spakowany zestaw tego rodzaju plików : <br /> <p> <form enctype="application/zip" action="http://akustyka09.hostil.pl/texten.zip"> <input type="submit" value="zestaw czterech plików tekstowych z danymi do przeprowadzenia obliczeń"> </form></p><br /> Po załadowaniu pliku archiwalnego ( <i> Texten.zip </i> ) i po jego rozpakowaniu proszę zwrócić uwagę na fakt, że każdy z czterech wypakowanych plików ma inną długość ( wielkość ) mimo, że wszystkie zawierają "tę samą informację", tj. zawierają te same trzy liczby całkowite : 3, 3 oraz 2 ; zatem sposób organizacji danych wpływa na wielkość elementu
Entropy.htm 5 / 6 niosącego informację o tych danych ( w tym przypadku - pliku ). <br /> <p> <h4> Ćwiczenie pierwsze : </h4></p> Proszę załadować dane z pliku o nazwie <i> Three_1.txt </i> i dokonać obliczenia według ostatniego wzoru ( wzoru "trójkowego" ). Przed załadowaniem danych z tego pliku proszę sprawdzić jego obecność dostępność. Proszę również sprawdzić wielkość tego pliku ( nie może on mieć długości zerowej ) przy pomocy funkcji <a href="http://www.mathworks.com/help/matlab/ref/dir.html" target=" _blank" type="text/html"> dir </a> <i> Matlaba </i> ( funkcja ta zwraca " metryczkę" pliku w postaci zmiennej strukturalnej ). Proszę powtórzyć to obliczenie wczytując dane ( tym razem ) z pliku o nazwie <i> Three_3.txt </i> ; proszę wypróbować dwie funkcje odczytu : <br /> <a href="http://www.cs.utah.edu/~germain/pps/topics/matlab/textread.html" target=" _blank" type="text/html"> textread </a> oraz <a href="http://www.tutorialspoint.com/matlab/matlab_data_import.htm" target="_blank" type="text/html"> importdata </a><br /> Przy obliczaniu entropii można wykorzystac funkcję <a href="http://www. mathworks.com/help/matlab/ref/log2.html" target="_blank" type="text/html"> log2. </a><br /> <p> <h4> Ćwiczenie drugie : </h4></p> <p> To ćwiczenie posiada dwa warianty - do alternatywnego wyboru : </p> <ol> <li> Proszę spróbować wczytać i "zorganizować" dane z któregoś z plików dwukolumnowych ( np. <i> Three_2.txt </i> lub <i> Three_4.txt </i> ), </li> <li> Proszę spróbować wczytać ( i wykorzystać! ) dane z pliku, który zawiera tylko jeden wiersz, czyli z pliku o nazwie <i> Three_0.txt </i> </li> </ol><br /> W przypadku wyboru tej drugiej opcji można cały wiersz ( czyli praktycznie : cały plik ) wczytać do długiego łańcucha wykorzystując funkcję <a href="http:// www.mathworks.com/help/matlab/ref/fileread.html" target="_blank" type="text/html" > fileread </a> ; następnie we wczytanym łańcuchu można zamienić spacje na przecinki lub średniki korzystając z funkcji <a href="http://www.mathworks.com/help/matlab/ref/strrep. html" target="_blank" type="text/html"> strrep </a> ; można też do wczytanego łańcucha dodać parę nawiasów kwadratowych używając ( na przykład ) funkcji <a href="http://www.mathworks.com/help/matlab/ref/sprintf.html" target="_blank" type="text/html"> sprintf </a> We wyniku tych proponowanych operacji łańcuchowych uzyskamy zapis trójelementowego ( trzyliczbowego ) wektora wewnątrz "przebudowanego" łańcucha. Możemy z kolei " wydobyć" ten łańcuch z przerobionego łańcucha korzystając z funkcji <a href="http://www.mathworks.com/help/matlab/ref/eval.html" target="_blank" type="text/html"> eval. </a> Funkcja o nazwie <i> eval </i> była tematem jednych zajęć podczas kursu <i> Matlaba II </i> w semestrze letnim : <br /> <p> <a href="http://www.dydaktyka.cba.pl/april_15.htm" target="_blank" type=" text/html">http://www.dydaktyka.cba.pl/april_15.htm</a></p><br /> <p> <fieldset><legend align="center"> <b> <big> Funkcje < i> informacyjne </i> w darmowych zamiennikach <i> Matlaba </i> : </big></b ></legend> <p> <h4> Funkcja o nazwie <i> entropy </i> : </h4></p> <li> <a href="http://www.mathworks.com/help/images/ref/entropy.html" target=" _blank" type="text/html">http://www.mathworks.com/help/images/ref/entropy.html</a ></li> <li> <a href="http://www.cs.rug.nl/~rudy/matlab/doc/entropy.html" target=" _blank" type="text/html">http://www.cs.rug.nl/~rudy/matlab/doc/entropy.html</a></ li> <li> <a href="http://dsp.stackexchange.com/questions/10137/spectral-entropycalculation-in-matlab" target="_blank">http://dsp.stackexchange.com/questions/ 10137/spectral-entropy-calculation-in-matlab</a></li> <li> <a href="http://octave.sourceforge.net/image/function/entropy.html" target="_blank" type="text/html">http://octave.sourceforge.net/image/function/ entropy.html</a></li> <li> <a href="http://octave.sourceforge.net/informationtheory/function/
Entropy.htm 6 / 6 hartley_entropy.html" target="_blank" type="text/html">http://octave.sourceforge. net/informationtheory/function/hartley_entropy.html</a></li> <p> Nawiązując do dwóch ostatnich linków warto wspomnieć, że w darmowym pakiecie <a href="http://pl.wikipedia.org/wiki/gnu_octave" target="_blank"> Octave </a> istnieje specjalizowany <i> toolbox </i> o nazwie <b> informationtheory</b> do przeprowadzania obliczeń ze zakresu teorii informacji : </p> <li> <a href="http://octave.sourceforge.net/informationtheory/" target="_blank ">http://octave.sourceforge.net/informationtheory/</a></li> <li> <a href="http://octave.sourceforge.net/informationtheory/overview.html" target="_blank" type="text/html">http://octave.sourceforge.net/informationtheory/ overview.html</a></li> <li> <a href="http://www.freshports.org/math/octave-forge-informationtheory/" target="_blank">http://www.freshports.org/math/octave-forge-informationtheory/</a ></li> <p> <h4> Funkcje "ogólnego przeznaczenia" ( wspomniane w tym opracowaniu ) w darmowych zamiennikach <i> Matlaba </i> : </h4></p> <li> <a href="http://octave.sourceforge.net/octave/function/textread.html" target="_blank" type="text/html">http://octave.sourceforge.net/octave/function/ textread.html</a></li> <li> <a href="http://octave.sourceforge.net/octave/function/log2.html" target= "_blank" type="text/html">http://octave.sourceforge.net/octave/function/log2.html </a></li> <li> <a href="http://help.scilab.org/docs/5.4.0/en_us/log2.html" target=" _blank" type="text/html">http://help.scilab.org/docs/5.4.0/en_us/log2.html</a></ li> <li> <a href="http://freemat.sourceforge.net/help/mathfunctions_log2.html" target="_blank" type="text/html">http://freemat.sourceforge.net/help/ mathfunctions_log2.html</a></li> <li> <a href="http://help.scilab.org/docs/5.3.3/en_us/dir.html" target="_blank " type="text/html">http://help.scilab.org/docs/5.3.3/en_us/dir.html</a></li> <li> <a href="http://help.scilab.org/docs/5.3.3/en_us/fscanfmat.html" target=" _blank" type="text/html">http://help.scilab.org/docs/5.3.3/en_us/fscanfmat.html</ a></li> </body> </html>