<jupyter_start><jupyter_text>Matlab* język wysokiego poziomu do obliczeń numerycznych, wizualizacji i tworzenia aplikacji* interaktywne środowisko do eksploracji, projektowania i rozwiązywania problemów* obszerna biblioteka funkcji matematycznych dla algebry liniowej, statystyki, analizy Fouriera, filtrowania, optymalizacji, całkowania numerycznego i rozwiązywania zwykłych równań różniczkowych*  wizualizacja danych*  narzędzia programistyczne: edytor, debbuger, profiler, ... *  narzędzia do tworzenia aplikacji z interfejsami graficznymi*  integracja algorytmów z zewnętrznymi aplikacjami (np. MS Excel) i językami (C, Java, .NET, ...)*  ToolBox-y  Środowisko graficzne![](https://ch.mathworks.com/help/matlab/learn_matlab/desktop.png")* **Current Folder**  - katalog bieżący* **Command Window**  - linia komend * **Workspace**  - podgląd zmiennych i danych w projekcie * **Command History** - historia komend  Matlab jako kalkulator**Operacje arytmetyczne** `+` dodawnie, `-` odejmowanie, `*` mnożenie, `/` dzielenie, `^` potęgowanie<jupyter_code>5 + 5
-2 * 4.3
2 ^ 10
3 / 5
3 / 0<jupyter_output>warning: division by zero
ans =  Inf<jupyter_text>**Ćwiczenie**: oblicz ile wynoisi $\frac{1.3^{2.2}}{5.3 - 3/13}$  Funkcje matematyczneStałe: `pi` $\pi$, `inf` $\infty$, `NaN` not a number, `realmax` największa liczba,  rzeczywista, `eps` dokładność maszynowaFunkcje: `sin()`, `cos()`, `tan`, `cot`, `sinh`, `asin`, `sqrt()`  $\sqrt{x}$, `exp()` $e^x$, `abs` $|x|$, `log`, `log2`, `log10`, `sign` znak, `mod` reszta z dzielenia<jupyter_code>sin( pi / 4 )
realmax
eps
sqrt(16)
sqrt(-1)<jupyter_output>ans =  0 + 1i<jupyter_text>**Ćwiczenie**: oblicz ile wynosi $\sqrt{\sin(0.3\pi) \cdot e^{-0.1}} $  Wyjście poleceń* średnik na końcu instrukcji (;) wyłacza wyjście* `disp()` wypisywanie zmiennych * `fprintf()` wypisywanie formatowanych komunikatów zgodnie z funkcją `printf` z C<jupyter_code>sin(5) + 3;
disp(sin(5) + 3);
disp('Witaj świecie')
fprintf('Witaj ściecie!\n')
fprintf('sin(%d) = %f\n', 2, sin(2))<jupyter_output>Witaj ściecie!
sin(2) = 0.909297<jupyter_text>Formatowanie `printf`:* liczby rzeczywiste: `%f`, `%e` notacja naukowa, `%g` krótka format  * `%.3f` precyzja * `%10f` szerokośc okna * `%-10f` wyrówanie do lewej* `%d` liczby całkowite* `%x` liczby całkowite (szesnastkowo)* `%s` napis (ciąg znaków)* `%c` znak<jupyter_code>fprintf('%f\n', pi)
fprintf('%e\n', pi)
fprintf('%g\n', pi)
fprintf('%.10f\n', pi)
fprintf('%10f\n', pi)
fprintf('%10.2f\n', pi)
fprintf('%-10.2f\n', pi)
fprintf('%d %x %c\n', 42, 42, 42)
fprintf('Liczba %s wynosi %f', 'pi', pi)<jupyter_output>3.141593
3.141593e+00
3.14159
3.1415926536
  3.141593
      3.14
3.14      
42 2a *
Liczba pi wynosi 3.141593<jupyter_text>Zmienne    * definicja i inicjalizacja zmiennych * operator `=` przypisania wartości   `zmienna = wyrażenie`* nazwy zmiennych `A-Za-z0-9_`, małe/wielkie litery rozróżniane<jupyter_code>x = 16 
y = sqrt(x)
z = x + y + sin(x) 
napis = '<NAME>'
x = x + 1<jupyter_output>x =  17<jupyter_text>błędne przypisanie<jupyter_code>1 = x<jupyter_output>parse error:

  invalid constant left hand side of assignment

>>> 1 = x
      ^<jupyter_text>* `who` - lista zmiennych * `whos` - lista zmiennych wraz informacją o typie* `clear` - usuwanie zmiennych<jupyter_code>who
whos<jupyter_output>Variables in the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  ===== 
        ans         1x1                          8  double
        napis       1x14                        14  char
        x           1x1                          8  double
        y           1x1                          8  double
        z           1x1                          8  double

Total is 18 elements using 46 bytes<jupyter_text>* zmienne są macierzami, liczby to macierze 1x1* napisy są wektorem znaków (`char`) 1xN  Zmienna `ans`* zmienna `ans` przechowuje ostatni wynik (answer)<jupyter_code>sqrt(2)
x = ans + 5<jupyter_output>x =  6.4142<jupyter_text>Typy danych* typ `double` domyślny dla warlości liczbowych* typ logiczny `logical`, wartości: `true`, `false`* typ znakowy `char`, napis to macierz (wektor) znaków* typ całkowity `int32` po rzutowaniu `int32()`<jupyter_code>x = 1;
y = true;
z = int32(x);
d = 'abc';
whos<jupyter_output>Variables in the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  ===== 
        ans         1x1                          8  double
        d           1x3                          3  char
        napis       1x14                        14  char
        x           1x1                          8  double
        y           1x1                          1  logical
        z           1x1                          4  int32

Total is 21 elements using 38 bytes<jupyter_text>Wektory<jupyter_code>x = [ 1  2  3]
x = [ 1,  2,  3]
x = 1:10
y = [ 1 ; 2 ; 3 ; 4]<jupyter_output>y =

   1
   2
   3
   4<jupyter_text>Operacje na wektorach<jupyter_code>x = [1 2 3 4 5]
x + 2
sqrt(x)
y = [6 7 8 9 10]
z = x + y
sqrt(x)<jupyter_output>y =

    6    7    8    9   10

z =

    7    9   11   13   15

ans =

   1.0000   1.4142   1.7321   2.0000   2.2361<jupyter_text>**Ćwiczenie**: oblicz wartość wyrażenia $\begin{bmatrix} 1 & 2 & 3 \\\end{bmatrix} \cdot\begin{bmatrix} 1 \\2\\3 \\\end{bmatrix}$  Komendy wbudowane* `clc` czyszczenie wiersza poleceń * `who` `whos` lista zmiennych* `clear` usuwa wszystkie zmienne* `clear x` usuwa zmienną `x`* `help polecenie` pomoc * `quit` wyjście z Matlab<jupyter_code>help sin<jupyter_output>'sin' is a built-in function from the file libinterp/corefcn/mappers.cc

 -- sin (X)
     Compute the sine for each element of X in radians.

     See also: asin, sind, sinh.

Additional help for built-in functions and operators is
available in the online version of the manual.  Use the command
'doc <topic>' to search the manual index.

Help and information about Octave is also available on the WWW
at https://www.octave.org and via the <EMAIL>
mailing list.<jupyter_text>Pomoc* `help polecenie` pomoc dotycząca polecenia  * `help elfun` elementarne funkcje matematyczne  * `help elmat` elementarne funkcje macierzowe* `doc polecenie` strona dokumentacji dotycząca polecenia* `lookfor wyrażenie` lista poleceń dotyczacych wyrażenia*  `F1`pomoc dotycząca zaznacznej funkcji<jupyter_code>lookfor cosine<jupyter_output>acos                Compute the inverse cosine in radians for each element of X
                    .
acosh               Compute the inverse hyperbolic cosine for each element of X
                    .
cos                 Compute the cosine for each element of X in radians.
cosh                Compute the hyperbolic cosine for each element of X.
acosd               Compute the inverse cosine in degrees for each element of X
                    .
cosd                Compute the cosine for each element of X in degrees.
cosint              Compute the cosine integral function:<jupyter_text>**Ćwiczenie**: zobacz pomoc dla polecenia `format`. Porównaj wyniki wyświetlania liczby $\pi$ w róznych formatach, np.: `short`, `long`, `rat`, `bin`  Wykresy<jupyter_code>x = -pi:pi;
plot(x, sin(x));
plot(x, cos(x), 'o')<jupyter_output><empty_output><jupyter_text>Inne przydatne komendy* `cd` zmiana katalogu* `dir` zawartość katalogu* `pwd` bieżący katalog* `save nazwa` zapis zmiennych, `load nazwa` odczytanie zmiennych* `date` data* `clc` czyszcenie wiersza poleceń* `quit` wyjście z Matlab<jupyter_code>pwd
date<jupyter_output>ans = /home/marek/work/zajecia/2020.zimowy/pp2/github
ans = 03-Nov-2020<jupyter_text>**Ćwiczenie**: wykonaj nastepujące kroki:1. usuń wszystkie zmienne i wyczyść wiersz poleceń2. utwóż zmienne $x=\pi$ i $y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]$3. zapisz zmienne w pliku o nazwie `dane`4. usuń zmienne $x$ i $y$5. wczytaj zmienne z pliku `dane` i wypisz ich wartości  SkryptyTryby pracy Matlab:* interaktywny - w wierszu poleceń* wsadowy - plik `*.m` (M-pliki) zawierający ciąg instrukcji staje się poleceniem Matlab. Nazwa pliku staje się poleceniem MatlabaPrzykład: uruchomienie pliku [hello.m](https://raw.githubusercontent.com/IS-UMK/pp2_matlab/master/hello.m)<jupyter_code>hello<jupyter_output>Witaj Świecie<jupyter_text>* `type nazwa` wyświetla zawartość pliku* `edit nazwa` otwiera edycję pliku<jupyter_code>type hello
help hello<jupyter_output>'hello' is a script from the file /home/marek/work/zajecia/2020.zimowy/pp2/github/hello.m

 To jest pierwszy progeam w Matlab


Additional help for built-in functions and operators is
available in the online version of the manual.  Use the command
'doc <topic>' to search the manual index.

Help and information about Octave is also available on the WWW
at https://www.octave.org and via the <EMAIL>
mailing list.
{'fraction_non_alphanumeric': 0.1147078727723889, 'fraction_numerical': 0.034513873223550644, 'mean_word_length': 3.0692978430472695, 'pattern_counts': {'":': 0, '<': 58, '<?xml version=': 0, '>': 61, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 17, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '17', 'dir': 'jupyter-structured-clean-dedup', 'id': '281849', 'license': 'CC0-1.0', 'n_tokens_mistral': 3671, 'n_tokens_neox': 3546, 'n_words': 933, 'path': '01_intro.ipynb', 'repo_name': 'IS-UMK/pp2_matlab', 'size': '8889'}