<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% refcard.tex
%
% This file is TeX source for a reference card describing Octave.
%
% Copyright (C) 1996, 1997, 2000, 2003, 2004, 2005, 2007 John W. Eaton
%
% This file is part of Octave.
%
% Octave is free software; you can redistribute it and/or modify it
% under the terms of the GNU General Public License as published by the
% Free Software Foundation; either version 3 of the License, or (at your
% option) any later version.
%
% Octave is distributed in the hope that it will be useful, but WITHOUT
% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
% FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
% for more details.
%
% You should have received a copy of the GNU General Public License
% along with Octave; see the file COPYING.  If not, see
% &lt;http://www.gnu.org/licenses/&gt;.
%
% Heavily modified by jwe from the source for the gdb reference card,
% which was orignally written by Roland Pesch &lt;pesch@cygnus.com&gt;.
%
%   Copyright (C) 1991, 1992 Free Software Foundation, Inc.
%   Permission is granted to make and distribute verbatim copies of
%   this reference provided the copyright notices and permission notices
%   are preserved on all copies.
%
% TeX markup is a programming language; accordingly this file is source
% for a program to generate a reference.
%
% You only have to set the total width and height of the paper, the
% horizontal and vertical margin space measured from *paper edge*
% and the interline and interspec spacing.
% In order to support a new papersize, you have to fiddle with the
% latter four dimensions. Just try out a few values.
% All other values will be computed at process time so it should be
% quite easy to support different paper sizes - only four values to
% guess :-)
%
% To find the configuration places, just search for the string
% "User configuration".
%
%   -- Andreas Vogel (av@ssw.de)
%
% NOTE ON INTENTIONAL OMISSIONS: This reference card includes many
% Octave commands, but due to space constraints there are some things
% I chose to omit.  In general, not all synonyms for commands are
% covered, nor all variations of a command.


% -------------------------------------
% The actual text of the reference card
% -------------------------------------

\documentclass[10pt]{article}
\usepackage[latin2]{inputenc}
\usepackage{polski}
\usepackage[landscape,a4paper,top=1.5cm, bottom=1.5cm, left=0.75cm, right=0.75cm]{geometry}
\usepackage[table]{xcolor}
\usepackage[breaklinks,colorlinks]{hyperref}
\usepackage{multicol}
\setlength{\columnseprule}{0pt}
\setlength{\columnsep}{0.7cm}
\usepackage{array}
\usepackage{tabulary}
\usepackage{colortbl}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{lastpage}
\usepackage{fancyhdr}
\usepackage{calc}

  \pagestyle{fancy}
  %\fancyhf{}
  \fancyhead[LE,RO]{\thepage/\pageref{LastPage}}
  \fancyhead[CE,CO]{Dokumentacja: \url{http://www.gnu.org/software/octave/doc}}
  \fancyhead[LO,RE]{{\large $\blacktriangleright$ Ściągawka z {\bfseries Octave} 3.0} \qquad Cz. \setcounter{part}{(1+\thepage)/2}\Roman{part}}
\fancyfoot[LE,LO]{Copyright $\copyright$ 1996, 1997, 2007 John W. Eaton.} 
\fancyfoot[CE,CO]{Opracowanie: Piotr Krzyżanowski, \number\year.} 
\fancyfoot[RE,RO]{Warunki użytkowania podano na ostatniej stronie.} 
  \parindent	0pt
  \parskip	0.3em

\newenvironment{ssec}[1][]{

\vskip1em

\rowcolors{2}{gray!15!white}{}
\begin{tabular}{&gt;{\tt}p{0.25\columnwidth}p{0.67\columnwidth}}
\multicolumn{2}{p{0.97\columnwidth}}{\cellcolor{yellow!40}\textbf{\textrm{\small #1}}}\\}{\end{tabular}}

\newcommand{\ctl}[1]{Ctrl+{#1}}
\newcommand{\meta}[1]{Alt+{#1}}
\newcommand{\opt}[1]{\{#1\}}
\newcommand{\email}[1]{\textrm{\url{#1}}}

\begin{document}

% \newcounter{part}

\footnotesize
\begin{multicols}{3}
\href{http://www.gnu.org/software/octave}{Octave} to bardzo złożony pakiet i \emph{żadna ściągawka nie zastąpi szczegółowej dokumentacji} --- tym bardziej, że używanie niektórych funkcji numerycznych wymaga pewnej wiedzy i ostrożności.
Oficjalna dokumentacja Octave dostępna jest pod adresem:

\centerline{\url{http://www.gnu.org/software/octave/doc}.}

W tekście poniżej, nawiasy klamrowe \opt{{}} oznaczają argumenty opcjonalne, a wielokropek {\tt ...} zastępuje precyzyjną listę argumentów.


\begin{ssec}[Rozpoczynanie pracy]
octave&amp;Uruchomienie standardowej sesji Octave w trybie interakcyjnym\\
octave {\it file}&amp;Uruchomienie Octave i wykonanie poleceń zawartych w pliku {\it file}\\
octave --eval {\it code}&amp;Wykonanie sekwencji poleceń {\it code}\\
octave --help&amp;Wypisuje dostępne opcje uruchomienia Octave\\
\end{ssec}

\begin{ssec}[Kończenie pracy]
quit {\rm or} exit&amp;Zamknięcie sesji i wyjście z Octave\\
INTERRUPT&amp;({\it Np.} \ctl{c}) zakończenie wykonywania bieżącego polecenia i powrót do linii komend\\
\end{ssec}

\begin{ssec}[Pomoc]
help&amp;Lista wszystkich poleceń i wbudowanych zmiennych\\
help {\it command}&amp;Krótki opis polecenia {\it command}\\
doc&amp;Przeglądanie wersji Info manuala Octave\\
doc {\it command}&amp;Opis polecenia {\it command} w manualu Octave\\
lookfor {\it str}&amp;Szuka w manualu Octave hasła {\it str}\\
\end{ssec}

\begin{ssec}[Nawigacja w Info]
SPACE {\rm albo} \ctl{v}&amp;Przewija jeden ekran do przodu\\
DEL {\rm albo} \meta{v}&amp;Przewija jeden ekran do tyłu\\
\ctl{l}&amp;Odświeża ekran\\
\end{ssec}

\begin{ssec}[Wybór sekcji Info]
n&amp;Następny rozdział\\
p&amp;Poprzedni rozdział\\
u&amp;Rozdział `piętro wyżej'\\
t&amp;Początek bieżącego manuala\\
d&amp;Spis treści Info\\
&lt;&amp;Pierwsze hasło w bieżącym manualu\\
&gt;&amp;Ostatnie hasło w bieżącym manualu\\
% ]&amp;move forward through the node structure\\
% [&amp;move backward through the nodes\\
g&amp;Próbuje odnaleźć rozdział o podanej nazwie\\
\ctl{x} k&amp;Zamyka bieżący rozdział\\
\end{ssec}

\begin{ssec}[Wyszukiwanie w Info]
s&amp;Wyszukuje podany tekst\\
\ctl{s}&amp;Wyszukuje kolejne pojawienia się tekstu\\
\ctl{r}&amp;To samo, ale do tyłu\\
i&amp;Przeszukuje indeks i przechodzi do hasła\\
,&amp;Znajduje następne pasujące hasło z komendy `{\tt i}'\\
\end{ssec}

%\columnbreak

\begin{ssec}[Nawigacja w linii poleceń]
\ctl{b} {\rm albo $\leftarrow$}&amp;Przesuń kursor o jeden znak w lewo\\
\ctl{f} {\rm albo $\rightarrow$}&amp;Przesuń kursor o jeden znak w prawo\\
\ctl{a} {\rm albo} HOME&amp;Przesuń kursor na początek linii\\
\ctl{e} {\rm albo} END&amp;Przesuń kursor na koniec linii\\
\meta{f} {\rm albo} \ctl{$\rightarrow$}&amp;Przeskocz słowo w prawo\\
\meta{b} {\rm albo} \ctl{$\leftarrow$}&amp;Przeskocz słowo w lewo\\
\ctl{l}&amp;Wyczyszczenie ekranu terminala\\
\end{ssec}

\begin{ssec}[Wpisywanie tekstu]
\meta{TAB}&amp;Wstawia znak tabulacji\\
DEL&amp;Kasuje znak na lewo od kursora\\
\ctl{d} {\rm albo} BACKSPACE&amp;Kasuje znak wskazywany przez kursor\\
\ctl{t}&amp;Zamienia ze sobą znak wskazywany przez kursor i sąsiadujący z nim (z lewej)\\
\end{ssec}

\begin{ssec}[Wycinanie i wklejanie]
\ctl{k}&amp;Wycina tekst od kursora do końca linii\\
\ctl{y}&amp;Wkleja ostatnio wycięty tekst\\
\meta{d}&amp;Wycina tekst od kursora do końca słowa\\
\end{ssec}

\begin{ssec}[Wprowadzanie komend i historia]
TAB&amp;Uzupełnienie wpisywanej komendy lub nazwy\\
ENTER&amp;Wprowadzenie bieżącego polecenia\\
\ctl{p} {\rm albo $\uparrow$}&amp;Poprzednio wydana komenda\\
\ctl{n} {\rm albo $\downarrow$}&amp;Następnie wydana komenda\\
\meta{&lt;}&amp;Pierwsza komenda na liście\\
\meta{&gt;}&amp;Ostatnia komenda na liście\\
\ctl{r}&amp;Szuka komendy wstecz na liście\\
history \opt{{-q}} \opt{{\it N\/}}&amp;Wypisz {\it N\/} ostatnich komend,
  {\tt -q} pomija numery komend\\
history -w \opt{{\it file}}&amp;Zapisuje historię do {\it file\/} (do {\tt
  \char'0176/.octave\_hist} gdy nie podano argumentu {\it file\/})\\
history -r \opt{{\it file}}&amp;Wczytuje historię z {\it file\/} (z {\tt
  \char'0176/.octave\_hist} jeśli nie podano {\it file\/})\\
run\_history \opt{{\it beg}} \opt{{\it end}}&amp;Wykonuje polecenia zapisane w historii. \opt{{\it beg\/}} \opt{{\it end\/}} określają numer pierwszej i ostatniej komendy. Bez argumentów wykonuje ostatnio wydaną komendę.\\
\end{ssec}


\begin{ssec}[Polecenia systemowe]
cd {\it dir}&amp;Zmienia bieżący katalog na {\it dir}\\
pwd&amp;Wypisuje nazwę bieżącego katalogu\\
ls \opt{{\it ...}}&amp;Wyświetla zawartość bieżącego katalogu\\
getenv ({\it string})&amp;Zwraca wartość danej zmiennej środowiskowej\\
system ({\it cmd})&amp;Wykonuje zadaną sekwencję komend systemowych {\it cmd}\\
\end{ssec}

\begin{ssec}[Macierze]
$[$ {\it x}, {\it y}, ... $]$&amp;Wektor wierszowy\\
$[$ {\it x}; {\it y}; ... $]$&amp;Wektor kolumnowy\\
$[$ {\it w}, {\it x}; {\it y}, {\it z} $]$&amp;Macierz $2\times 2$ postaci $\left(\;\,\begin{matrix}w &amp; x\\ y &amp; z\end{matrix}\;\,\right)$\\
\end{ssec}
Zawartość macierzy wpisujemy wewnątrz nawiasów kwadratowych. Przecinki oddzielają kolejne elementy w wierszu. Średnik oddziela wiersze. Zamiast przecinka można użyć spacji, a zamiast średnika --- przejść do nowego wiersza. Elementami macierzy mogą być dowolne wyrażenia dobrane tak, by zgadzały się rozmiary.

\begin{ssec}[Macierze $N$-wymiarowe]
squeeze ({\it arr})&amp;Usuwa singletonowe wymiary z macierzy {\it arr}\\
ndims ({\it arr})&amp;Liczba wymiarów macierzy\\
permute ({\it arr}, {\it p})&amp;Permutuje wymiary macierzy\\
ipermute ({\it arr}, {\it p})&amp;Odwrotna permutacja wymiarów\\
shiftdim ({\it arr}, {\it s})&amp;Rotacja wymiarów macierzy\\
circshift ({\it arr}, {\it s})&amp;Rotacja elementów macierzy\\
\end{ssec}

Macierze $N$-wymiarowe można tworzyć z macierzy niższego wymiaru, korzystając z poleceń {\it cat} lub {\it reshape}.
  
\begin{ssec}[Macierze rzadkie]
sparse (...)&amp;Tworzy macierz rzadką\\
speye ({\it n})&amp;Tworzy macierz identyczności w formacie macierzy rzadkiej\\
sprand ({\it n}, {\it m}, {\it d})&amp;Rzadka macierz $n\times m$ o wypełnieniu {\it d}\\
spdiags (...)&amp;Uogólnienie {\it diag} na macierze rzadkie\\
nnz ({\it s})&amp;Liczba niezerowych elementów macierzy\\
\end{ssec}

\begin{ssec}[Zakresy indeksów]
{\it base} : \opt{{\it incr} :} {\it limit}&amp;
Generuje zestaw kolejnych liczb od {\it base\/}, z odstępem {\it incr}, do {\it limit}.  Jeśli {\it incr\/} pominiemy, odstęp wyniesie $1$. Dozwolone są ujemne i ułamkowe odstępy.\\
\end{ssec}

\begin{ssec}[Selekcja elementów macierzy]
{\it var} ({\it idx})&amp;Wybiera z wektora elementy o zadanych indeksach\\
{\it var} ({\it idx1}, {\it idx2})&amp;Wybiera z macierzy elementy o zadanych indeksach\\
 &amp; Możliwe postaci indeksów elementów:\\
\quad {\it scalar}&amp;Indeks o numerze {\it scalar}\\
\quad {\it vector}&amp;Numery indeksów w wektorze {\it vector}\\
\quad {\it range}&amp;Numery indeksów w postaci zakresu {\it range}\\
\quad :&amp;Wszystkie dopuszczalne elementy\\
\end{ssec}

\begin{ssec}[Napisy i znaki specjalne]
\char'134\char'134&amp;Znak ,,backslash''\\
\char'134 "&amp;Cudzysłów podwójny\\
\char'134 '&amp;Cudzysłów pojedynczy\\
\char'134 n&amp;Znak nowej linii, ASCII code 10\\
\char'134 t&amp;Znak tabulacji, ASCII code 9\\
\end{ssec}

{\it Napis\/} to sekwencja znaków otoczona cudzysłowami. Użycie podwójnych cudzysłowów umożliwia stosowanie powyższych znaków specjalnych wewnątrz napisu.

\begin{ssec}[Zmienne globalne i statyczne]
global {\it var1} ...&amp;Deklaruje zmienną jako globalną\\
global {\it var1} = {\it val}&amp;Deklaruje zmienną jako globalną i nadaje jej wartość\\
persistent {\it var1}&amp;Deklaruje zmienną w funkcji jako statyczną\\
persistent {\it var1} = {\it val}&amp;Deklaruje zmienną w funkcji jako statyczną i nadaje jej wartość początkową\\
\end{ssec}

Aby zmienna globalna była widoczna we wnętrzu funkcji, musi wcześniej być zadeklarowana jako globalna zarówno w funkcji, jak i w sesji Octave.

\begin{ssec}[Wybrane ,,stałe'']
Inf, NaN&amp;Nieskończoność i not-a-number zgodnie z IEEE 754\\
NA&amp;Brak danych\\
ans&amp;Zmienna, której domyślnie przypisywany jest wynik wyrażenia wprowadzonego z linii komend\\
eps&amp;Epsilon maszynowy\\
pi&amp;Liczba $\pi$\\
1i&amp;Jednostka urojona, $\sqrt{-1}$\\
realmax&amp;Największa reprezentowalna liczba zmiennoprzecinkowa\\
realmin&amp;Najmniejsza reprezentowalna (dodatnia) liczba zmiennoprzecinkowa\\
\end{ssec}

W rzeczywistości są to funkcje.
 
\begin{ssec}[Przypisanie]
{\it var} = {\it expr}&amp;Wartość wyrażenia {\it expr} przypisuje zmiennej {\it var}\\
{\it var} ({\it idx}) = {\it expr}&amp;Wartość wyrażenia przypisuje elementom wektora o zadanych indeksach\\
{\it var} ({\it idx}) = []&amp;Usuwa elementy o zadanych indeksach\\
{\it var} $\{${\it idx}$\}$ = {\it expr}&amp;Wartość wyrażenia przypisuje zadanym elementom zmiennej tablicowej\\
\end{ssec}

\begin{ssec}[Struktury i tablice]
{\it{var}}.{\it{field}} = ...&amp;Nadaje wartość polu \it{field} struktury \it{var}\\
{\it{var}}$\{${\it{idx}}$\}$ = ...&amp;Nadaje wartość elementowi zmiennej tablicowej\\
cellfun({\it f}, {\it c})&amp;Przykłada funkcję do elementów zmiennej tablicowej\\
fieldnames({\it s})&amp;Zwraca nazwy pól struktury\\
\end{ssec}

\begin{ssec}[Operatory arytmetyczne]
{\it x} + {\it y}&amp;Dodawanie\\
{\it x} - {\it y}&amp;Odejmowanie\\
{\it x} * {\it y}&amp;Mnożenie (macierzowe)\\
{\it x} .* {\it y}&amp;Mnożenie elementów\\
{\it x} / {\it y}&amp;Prawostronny operator rozwiązywania układu równań liniowych, \emph{formalnie} równoważny obliczeniu 
  {\tt (inv~(y')~*~x')'}\\
{\it x} ./ {\it y}&amp;Prawostronne dzielenie elementów\\
{\it x} \char'134{} {\it y}&amp;Lewostronny operator rozwiązywania układu równań liniowych, \emph{formalnie} równoważny obliczeniu 
  {\tt inv~(x)~*~y}\\
{\it x} .\char'134{} {\it y}&amp;Lewostronne dzielenie elementów\\
{\it x} \char'136{} {\it y}&amp;Potęgowanie (macierzowe)\\
{\it x} .\char'136{} {\it y}&amp;Potęgowanie elementów\\
-{\it x}&amp;Znak $-$\\
+{\it x}&amp;Znak $+$\\
{\it x} '&amp;Sprzężenie zespolone\\
{\it x} .'&amp;Transpozycja\\
++{\it x}\quad{\rm(}--{\it x}{\rm)}&amp;Inkrement (dekrement),
zwraca \emph{przyjętą} wartość\\
{\it x}++\quad{\rm(}{\it x}--{\rm)}&amp;Inkrement (dekrement),
zwraca \emph{starą} wartość\\
\end{ssec}

\begin{ssec}[Porównania i operatory logiczne]
{\it x} &lt; {\it y}&amp;{\tt true}, jeśli {\it x\/} mniejsze od {\it y}\\
{\it x} &lt;= {\it y}&amp;{\tt true}, jeśli {\it x\/} mniejsze lub równe {\it y}\\
{\it x} == {\it y}&amp;{\tt true}, jeśli {\it x\/} równe {\it y}\\
{\it x} &gt;= {\it y}&amp;{\tt true}, jeśli {\it x\/} większe lub równe {\it y}\\
{\it x} &gt; {\it y}&amp;{\tt true}, jeśli {\it x\/} większe od {\it y}\\
{\it x} != {\it y}&amp;{\tt true}, jeśli {\it x\/} różne od {\it y}\\
{\it x} \&amp; {\it y}&amp;{\tt true}, jeśli jednocześnie {\it x\/} i {\it y\/} są {\tt true} (logiczne ,,AND'')\\
{\it x} | {\it y}&amp;{\tt true}, jeśli przynajmniej jedno: {\it x\/} lub {\it y\/} jest  {\tt true} (logiczne ,,OR'')\\ 
! {\it bool}&amp;{\tt true}, jeśli {\it bool\/} jest {\tt false} (logiczne ,,NOT'')\\
\end{ssec}

Działają na elementach macierzy. Oba argumenty są wyznaczane przed zwróceniem wyniku.
  
\begin{ssec}[Skrócone operacje logiczne]
{\it x} \&amp;\&amp; {\it y}&amp;{\tt true}, jeśli jednocześnie {\it x\/} i {\it y\/} są {\tt true}\\
{\it x} || {\it y}&amp;{\tt true}, jeśli przynajmniej jedno: {\it x\/} lub {\it y\/} jest  {\tt true}\\
\end{ssec}
Wartość operatora jest wyznaczana od lewej do prawej, a wartości operandów są obliczane tylko do momentu, gdy wartość całego wyrażenia może zostać prawidłowo określona. Operandy są uprzednio przekształcane do skalarów funkcją {\tt all}.
  
\begin{ssec}[Priorytet operatorów]
;\ \ ,&amp;Separatory poleceń\\
=&amp;Przypisanie, grupuje się od lewej do prawej\\
||\ \ \&amp;\&amp;&amp;Logiczne ,,OR'' oraz ,,AND''\\
|\ \ \&amp;&amp;Skrócone logiczne ,,OR'' oraz ,,AND''\\
&lt; &lt;= == &gt;= &gt; !=&amp;Porównania\\
:&amp;Indeksy\\
+\ \ -&amp;Dodawanie i odejmowanie\\
* / \char'134\ \ .*\ \ ./\ \ .\char'134&amp;Mnożenie i dzielenie\\
'\ \ .'&amp;Sprzężenie, transpozycja\\
+\ \ -\ \ ++\ \ --\ \ !&amp;Znak plus/minus, inkrement/dekrement, logiczne  ,,NOT''\\
\char'136\ \ .\char'136&amp;Potęgowanie\\
\end{ssec}
Uporządkowane według rosnącego priorytetu.

\begin{ssec}[Ścieżki i pakiety]
path&amp;Wyświetla listę katalogów, w których Octave szuka funkcji\\
pathdef&amp;Wyświetla domyślną wartość {\tt path}\\
addpath({\it dir})&amp;Dodaje katalog do  {\tt path}\\
EXEC\_PATH&amp;Manipulacja listą katalogów w których Octave szuka zewnętrznych programów wykonywalnych\\
pkg list&amp;Lista zainstalowanych pakietów rozszerzeń\\
pkg describe \opt{-verbose} {\it pack}&amp;Opis \opt{pogłębiony} wskazanego pakietu\\
pkg load {\it pack}&amp;Ładuje wskazany pakiet\\
\end{ssec}

\begin{ssec}[Instrukcje sterujące]
for {\it identifier} = {\it expr} {\it stmt-list} endfor&amp;
  Wykonuje {\it stmt-list} w pętli po kolumnach {\it expr}. W każdym obrocie pętli zmienna {\it identifier} przyjmuje wartość bieżącej kolumny.\\
while ({\it condition}) {\it stmt-list} endwhile&amp;
  Powtarza instrukcje {\it stmt-list} dopóki {\it condition} ma wartość {\tt true}.\\
break&amp;Wychodzi z najbardziej zagnieżdżonej pętli\\
continue&amp;Przechodzi na początek najbardziej zagnieżdżonej pętli\\
return&amp;Kończy działanie bieżącej i wraca do wywołującej funkcji\\
if ({\it condition}) {\it if-body} \opt{{\tt else} {\it else-body}} endif&amp;
  Wykonuje instrukcje {\it if-body} pod warunkiem, że {\it condition} ma wartość  {\tt true}, w przeciwnym razie wykonują się instrukcje  {\it else-body}.\\
if ({\it condition}) {\it if-body} \opt{{\tt elseif} ({\it condition})
  {\it elseif-body}} \opt{{\tt else} {\it else-body}} endif &amp;  Wykonuje instrukcje {\it if-body} pod warunkiem, że {\it condition} ma wartość {\tt true}, w przeciwnym razie wykonuje instrukcje  z pierwszego {\it elseif-body} dla którego warunek {\tt elseif} jest spełniony; gdy żaden z warunków nie jest spełniony, wykonuje {\it else-body}. 
  W instrukcji {\tt if} może znaleźć się ,,dowolna'' liczba rozgałęzień {\tt elseif}.\\
switch ({\it expr}) case {\it label} {\it case-body} \opt{{\tt case} {\it label} {\it case-body}}  \opt{{\tt otherwise} {\it otherwise-body}} endswitch&amp;Wykonuje ten zestaw instrukcji {\it case-body}, dla którego {\it label} jest równa wartości {\it expr}. W przeciwnym razie wykonuje {\it otherwise-body}. Działa także wtedy, gdy {\it label} jest tekstem. W instrukcji {\tt switch} może znaleźć się ,,dowolna'' liczba rozgałęzień {\tt case}.\\
unwind\_protect {\it body} unwind\_protect\_cleanup {\it cleanup} end&amp;Wykonuje  {\it body}.  Następnie wykonuje {\it cleanup} bez względu na to, czym zakończyło się wykonywanie {\it body}.\\
try {\it body} catch {\it cleanup} end&amp;Wykonuje {\it body}. Następnie wykonuje {\it cleanup}, o ile wykonanie {\it body} zakończy się przedwcześnie (np. błędem).\\
\end{ssec}


\begin{ssec}[Funkcje tekstowe]
strcmp ({\it s}, {\it t})&amp;Porównuje teksty\\
strcat ({\it s}, {\it t}, ...)&amp;Łączy teksty\\
regexp ({\it str}, {\it pat})&amp;Wyszukiwanie według wyrażenia regularnego\\
regexprep ({\it str}, {\it pat}, {\it rep})&amp;Wyszukiwanie i zastępowanie według wyrażenia regularnego\\
\end{ssec}

\begin{ssec}[Definiowanie funkcji]
function \opt{{\it ret-list}} {\it function-name}
  \opt{\hskip0.2em({\it arg-list})\hskip0.2em}
\quad{\it function-body}
endfunction&amp;
{\it ret-list\/} może być pojedynczym identyfikatorem lub otoczoną nawiasami kwadratowymi listą oddzielonych przecinkami identyfikatorów. 
{\it arg-list\/} jest listą oddzielonych przecinkami argumentów; może być pusta.\\
\end{ssec}


\begin{ssec}[Wskaźniki do funkcji]
@{\it{func}}&amp; Wyłuskuje wskaźnik do {\it func}.\\
@({\it var1}, ...) {\it expr}&amp;Definiuje funkcję anonimową i zwraca wskaźnik do niej.\\
str2func ({\it str})&amp;Tworzy wskaźnik na podstawie nazwy funkcji.\\
functions ({\it handle})&amp;Zwraca informacje o konkretnym wskaźniku.\\
func2str ({\it handle})&amp;Zwraca nazwę funkcji o danym wskaźniku.\\
{\it handle} ({\it arg1}, ...)&amp;Dla podanych argumentów wyznacza wartość funkcji o wskaźniku {\it handle}.\\
feval ({\it func}, {\it arg1}, ...)&amp;Dla podanych argumentów wyznacza wartość funkcji o wskaźniku lub nazwie {\it func}.
\end{ssec}
  Funkcje anonimowe używają kopii zmiennych z przestrzeni roboczej sesji Octave, o początkowych wartościach takich, jak w chwili definiowania funkcji.

\begin{ssec}[Rozmaite użyteczne funkcje]
eval ({\it str})&amp;Wykonuje {\it str} jako polecenie Octave\\
error ({\it msg})&amp;Wyświetla komunikat o błędzie {\it msg} i powraca do sesji Octave\\
warning ({\it msg})&amp;Wyświetla ostrzeżenie {\it msg} i działa dalej\\
clear {\it pattern}&amp;Usuwa zmienne odpowiadające wzorcowi {\it pattern}\\
exist ({\it str})&amp;Sprawdza, czy istnieje zmienna lub funkcja o nazwie {\it str}\\
who, whos&amp;Podaje informacje o zdefiniowanych obiektach\\
whos {\it var}&amp;Szczegółowe informacje o zmiennej {\it var}\\
\end{ssec}

\begin{ssec}[Podstawowe funkcje macierzowe]
rows ({\it a})&amp;Liczba wierszy {\it a}\\
columns ({\it a})&amp;Liczba kolumn {\it a}\\
all ({\it a})&amp;Czy wszystkie elementy {\it a\/} są niezerowe\\
any ({\it a})&amp;Czy jakikolwiek element {\it a\/} jest niezerowy\\
find ({\it a})&amp;Zwraca współrzędne niezerowych elementów {\it a\/}\\
sort ({\it a})&amp;Sortuje elementy każdej kolumny {\it a}\\
sum ({\it a})&amp;Sumuje wartości w każdej kolumnie {\it a}\\
prod ({\it a})&amp;Mnoży wartości w każdej kolumnie {\it a}\\
min ({\it ...})&amp;Minimum\\
max ({\it ...})&amp;Maksimum\\
rem ({\it x}, {\it y})&amp;Reszta z dzielenia {\it x}/{\it y}\\
reshape ({\it a}, {\it m}, {\it n})&amp;Zmienia rozmiar {\it a} na {\it m}$\times${\it n}\\
diag ({\it v}, {\it k})&amp;Tworzy macierz diagonalną\\
linspace ({\it b}, {\it l}, {\it n})&amp;Tworzy zestaw równoodległych węzłów\\
logspace ({\it b}, {\it l}, {\it n})&amp;Tworzy zestaw węzłów równoodległych w skali logarytmicznej\\
eye ({\it n}, {\it m})&amp;Tworzy macierz identyczności {\it n\/}$\times${\it m\/}\\
ones ({\it n}, {\it m})&amp;Tworzy macierz jedynkową {\it n\/}$\times${\it m\/}\\
zeros ({\it n}, {\it m})&amp;Tworzy macierz zerową  {\it n\/}$\times${\it m\/}\\
rand ({\it n}, {\it m})&amp;Tworzy macierz losową {\it n\/}$\times${\it m\/}\\ 
\end{ssec}

\begin{ssec}[Wybrane elementarne funkcje matematyczne]
log({\it a}) log10({\it a}) log2({\it a})&amp;Funkcje logarytmiczne; {\tt log} to logarytm naturalny\\
exp({\it a}), sqrt({\it a}), pow({\it a}, {\it b})&amp;$e^a$, $\sqrt{a}$, $a^b$\\
sin({\it a}) cos({\it a}) tan({\it a})
asin({\it a}) acos({\it a}) atan({\it a})
sinh({\it a}) cosh({\it a}) tanh({\it a})
asinh({\it a}) acosh({\it a}) atanh({\it a})&amp;Funkcje trygonometryczne\\
\end{ssec}

\begin{ssec}[Algebra liniowa]
chol ({\it A})&amp;Rozkład Cholesky'ego--Banachiewicza\\
det ({\it A})&amp;wyznacznik\\
eig ({\it A})&amp;Wartości i wektory własne\\
eigs ({\it A})&amp;Wybrane wartości i wektory własne\\
expm ({\it A})&amp;Macierzowa funkcja wykładnicza, $e^A$\\
lu ({\it A})&amp;Rozkład LU\\
inv ({\it A})&amp;Odwrotność {\it A}\\
norm ({\it A}, {\it p})&amp;{\it p}-ta norma macierzowa\\
pinv ({\it A})&amp;Pseudoodwrotność {\it A}\\
pcg ({\it A}, {\it b})&amp;Rozwiązanie układu {\it Ax = b} metodą gradientów sprzężonych\\
qr ({\it A})&amp;Rozkład QR\\
rank ({\it A})&amp;Rząd macierzy\\
sprank ({\it A})&amp;Rząd strukturalny macierzy rzadkiej\\
schur ({\it A})&amp;Rozkład Schura\\
svd ({\it A})&amp;Rozkład SVD\\
syl ({\it A}, {\it B}, {\it C})&amp;Rozwiązuje równanie Sylvestera\\
\end{ssec}

Układ równań $Ax=b$ należy standardowo rozwiązywać przez {\tt x=A/b}.


\begin{ssec}[Równania nieliniowe, różniczkowe, różniczkowo-algebraiczne. Całkowanie]
fzero (...)&amp;Rozwiązuje skalarne równanie nieliniowe\\
fsolve (...)&amp;Rozwiązuje układ równań nieliniowych\\
lsode (...)&amp;Rozwiązuje układ równań różniczkowych zwyczajnych\\
dassl (...)&amp;Rozwiązuje układ równań różniczkowo--algebraicznych\\
quad (...)&amp;Oblicza całkę funkcji jednej zmiennej\\
perror ({\it nm}, {\it code})&amp;Jeśli funkcja zwraca numeryczny kod błędu, wyświetla odpowiadający mu komunikat dla użytkownika
\end{ssec}
  
W manualu znajdują się szczegółowe informacje o parametrach i sposobie wywołania tych funkcji. Należy pamiętać, że wyznaczają one jedynie pewne przybliżenie rozwiązania.
  
\begin{ssec}[Zbiory]
create\_set ({\it a}, {\it b})&amp;Tworzy wektor wierszowy unikalnych wartości\\
complement ({\it a}, {\it b})&amp;Elementy {\it b}, których nie ma w {\it a}\\
intersection ({\it a}, {\it b})&amp;Przecięcie zbiorów {\it a} i {\it b}\\
union ({\it a}, {\it b})&amp;Suma (teoriomnogościowa) zbiorów {\it a} i {\it b}\\
\end{ssec}

\begin{ssec}[Przetwarzanie sygnałów]
fft ({\it a})&amp;Dyskretna transformacja Fouriera z wykorzystaniem FFTW\\
ifft ({\it a})&amp;Transformacja odwrotna do FFT\\
freqz ({\it ...})&amp;Filtr częstotliwości\\
filter ({\it a}, {\it b}, {\it x})&amp;Rozwiązuje proste równanie różnicowe\\
conv ({\it a}, {\it b})&amp;Splot dwóch wektorów\\
\end{ssec}

W manualu znajdują się szczegółowe informacje o parametrach i sposobie wywołania tych funkcji. 
  

\begin{ssec}[Przetwarzanie obrazów]
colormap ({\it map})&amp;Ustawia bieżącą gamę kolorów\\
gray2ind ({\it i}, {\it n})&amp;Zamienia obraz w skali szarości na (indeksowany) obraz Octave\\
image ({\it img}, {\it zoom})&amp;Wyświetla obraz Octave\\
imagesc ({\it img}, {\it zoom})&amp;Wyświetla macierz jako wyskalowany obraz\\
imshow ({\it img}, {\it map})&amp;Wyświetla obraz Octave\\
imshow ({\it i}, {\it n})&amp;Wyświetla obraz Octave w skali szarości\\
imshow ({\it r}, {\it g}, {\it b})&amp;Wyświetla obraz RGB\\
ind2gray ({\it img}, {\it map})&amp;Zamienia (indeksowany) obraz Octave na obraz w skali szarości\\
ind2rgb ({\it img}, {\it map})&amp;Zamienia (indeksowany) obraz Octave na RGB\\
loadimage ({\it file})&amp;Wczytuje z pliku obraz Octave\\
rgb2ind ({\it r}, {\it g}, {\it b})&amp;Zamienia RGB na (indeksowany) obraz Octave\\
saveimage ({\it file}, {\it img}, {\it fmt}, {\it map})&amp;Zapisuje macierz {\it img} do pliku {\it file} w jednym z kilku formatów\\
print ({\it file}, {\it fmt})&amp;Zapisuje obecnie wyświetlany obraz do pliku {\it file} w jednym z wielu formatów\\
\end{ssec}


\begin{ssec}[Funkcje wejścia--wyjścia]
save \opt{options} {\it filename} {\it var} ...&amp;Zapisuje wskazane zmienne do pliku o nazwie {\it filename}\\
load {\it filename} \opt{var} ...&amp;Wczytuje \opt{wskazane} zmienne z pliku o nazwie {\it filename}\\
disp ({\it var})&amp;Wyświetla na ekranie bieżącą wartość zmiennej {\it var}\\
\end{ssec}

\begin{ssec}[Wejście--wyjście w stylu języka C]
fopen ({\it filename}, {\it mode})&amp;Otwiera plik o nazwie {\it filename}\\
fclose ({\it file})&amp;Zamyka plik {\it file}\\
printf ({\it fmt}, ...)&amp;Formatowane wyjście na {\tt stdout}\\
fprintf ({\it file}, {\it fmt}, ...)&amp;Formatowane wyjście do pliku {\it file}\\
sprintf ({\it fmt}, ...)&amp;Formatowane wyjście do stringa\\
scanf ({\it fmt})&amp;Formatowane wejście z {\tt stdin}\\
fscanf ({\it file}, {\it fmt})&amp;Formatowane wejście z pliku {\it file}\\
sscanf ({\it str}, {\it fmt})&amp;Formatowane wejście z napisu {\it str}\\
fgets ({\it file}, {\it len})&amp;Wczytuje {\it len\/} znaków z pliku {\it file\/}\\
fflush ({\it file})&amp;Oczyszcza bufor pliku {\it file}\\
ftell ({\it file})&amp;Bieżąca pozycja w pliku\\
frewind ({\it file})&amp;Przewija na początek pliku\\
freport&amp;Informacja o otwartych plikach\\
fread ({\it file}, {\it size}, {\it prec})&amp;Wczytywanie danych z pliku w formacie binarnym\\
fwrite ({\it file}, {\it size}, {\it prec})&amp;Zapisywanie danych do pliku w formacie binarnym\\
feof ({\it file})&amp;Sprawdza, czy jest na końcu pliku\\
\end{ssec}

Do pliku można odwoływać się albo przez nazwę, albo przez deskryptor zwracany przez {\tt fopen}. Po uruchomieniu, Octave otwiera trzy pliki:
  {\tt stdin}, {\tt stdout}, oraz {\tt stderr}.


\begin{ssec}[Wielomiany]
compan ({\it p})&amp;Macierz, której wartości własne są równe pierwiastkom wielomianu {\it p}\\
conv ({\it a}, {\it b})&amp;Współczynniki iloczynu wielomianów {\it a} i {\it b}\\
deconv ({\it a}, {\it b})&amp;Dzielenie wielomianów\\
poly ({\it a})&amp;Wielomian charakterystyczny macierzy {\it a}\\
polyderiv ({\it p})&amp;Pochodna wielomianu\\
polyint ({\it p})&amp;Całka nieoznaczona z wielomianu\\
polyval ({\it p}, {\it x})&amp;Wyznacza wartość wielomianu w węzłach {\it x}\\
polyvalm ({\it p}, {\it X})&amp;Wyznacza w sensie macierzowym wartość wielomianu na macierzy kwadratowej {\it X}\\
roots ({\it p})&amp;Wyznacza wszystkie pierwiastki wielomianu\\
residue ({\it a}, {\it b})&amp;Wyznacza rozkład funkcji wymiernej {\it a}/{\it b} na ułamki proste\\
\end{ssec}

\begin{ssec}[Statystyka]
corrcoef ({\it x}, {\it y})&amp;Współczynnik korelacji\\
cov ({\it x}, {\it y})&amp;Macierz kowariancji\\
mean ({\it a})&amp;Średnia\\
median ({\it a})&amp;Mediana\\
std ({\it a})&amp;Odchylenie standardowe\\
var ({\it a})&amp;Wariancja\\
\end{ssec}

\begin{ssec}[Wykresy]
plot (...)&amp;Wykres krzywej 2D w skali liniowej\\
plot3 (...)&amp;Wykres krzywej 3D w skali liniowej\\
line (...)&amp;Linia w 2D lub 3D\\
patch (...)&amp;Wielokąt w 2D\\
semilogx (...)&amp;Wykres krzywej 2D w skali logarytmicznej na osi $OX$\\
semilogy (...)&amp;Wykres krzywej 2D w skali logarytmicznej na osi $OY$\\
loglog (...)&amp;Wykres krzywej 2D w skali logarytmicznej na obu osiach\\
bar (...)&amp;Wykres słupkowy\\
stairs ({\it x}, {\it y})&amp;Wykres schodkowy\\
stem ({\it x}, {\it y})&amp;Wykres drążkowy\\
hist ({\it y}, {\it x})&amp;Histogram\\
contour ({\it x}, {\it y}, {\it z})&amp;Wykres poziomicowy\\
title ({\it string})&amp;Nadaje wykresowi tytuł\\
axis ({\it limits})&amp;Parametry osi wykresu\\
xlabel ({\it string})&amp;Nadaje nazwę osi $OX$\\
ylabel ({\it string})&amp;Nadaje nazwę osi $OY$\\
zlabel ({\it string})&amp;Nadaje nazwę osi $OZ$\\
text ({\it x}, {\it y}, {\it str})&amp;Do wykresu dodaje tekst {\it str} w pozycji $(x,y)$\\
legend ({\it string})&amp;Dodaje do wykresu legendę\\
grid \opt{on$|$off}&amp;Przełącza wyświetlanie siatki na wykresie\\
hold \opt{on$|$off}&amp;Przełącza tryb dorysowywania do bieżącego wykresu\\
ishold&amp;Sprawdza, czy jesteśmy w trybie dorysowywania\\
mesh ({\it x}, {\it y}, {\it z})&amp;Wykres powierzchni 3D\\
meshgrid ({\it x}, {\it y})&amp;Tworzy macierze współrzędnych\\
print ({\it file}, {\it fmt})&amp;Zapisuje obecnie wyświetlany obraz do pliku {\it file} w jednym z wielu formatów\\
\end{ssec}

\ \\


\hrule


\ \\


{\it Wydanie polskie 1.0 dla Octave 3.0 na podstawie wydania angielskiego 2.0 dla Octave 3.0.0.  Copyright
1996, 2007, John W. Eaton (\email{jwe@octave.org}). Tłumaczenie, opracowanie i makra \LaTeX{}'owe: Piotr Krzyżanowski (\email{piotr.krzyzanowski@mimuw.edu.pl}). Możesz do woli rozpowszechniać ten dokument na zasadach \href{http://www.gnu.org/licenses/}{GNU General Public License}. 


Ani John W. Eaton, ani Piotr Krzyżanowski, nie ponoszą żadnej odpowiedzialności za błędy znajdujące się w tym dokumencie. 


\href{http://www.gnu.org/software/octave}{Octave} to wolne oprogramowanie; możesz do woli je rozpowszechniać na zasadach \href{http://www.gnu.org/licenses/}{GNU General Public License}. Nie ma żadnych gwarancji związanych z Octave.
}

\end{multicols}
\end{document}

</pre></body></html>