praca w MATLABie, Pomoce naukowe, studia, informatyka


Czym jest matlab?

Elementy pakietu MATLAB

m-pliki

szczególne pliki 2 rodz.: skryptowe, funkcyjne

Praca z polwetem MATLAB

  1. W trybie bezpośrednim - tryb roboczy umożliwiający prowadzenie dialogu między użytkownikiem i polwetem

  2. W trybie pośrednim - umożliwiającym szybsze i efektywne wykonywanie obliczeń i prezentację wyników za pomocą uruchomienia programu napisanego w języku polwet Matlab czyli tzn. skrytpu

ZMIENNE

LICZBY

POLECENIA

POMOC SYSTEMOWA

MACIERZE - DEFINIOWANIE MACIERZY

ODWOLANIA DO FRAGMENTÓW MACIERZY

WYŚWIETLANIE MACIERZY I ICH ROZMIARÓW

ARYTMETYKA MACIERZOWA I TABLICOWA

A + B

A - B

A * B B * A

C1 = B / A ,C2=A \ B

A12 = A * A

A`

A + B

A - B

A . * B = B . * A

B . / A =A .\ B

A .12

A`

Funkcje generujące i przekształcające macierze:

eye (n) - tworzy macierz jednostkową n x n

ones (1) - tworzy macierz o elementach równych 1

zeros(n) - macierz zerowa n x n

rand (n) - macierz n x n wypełniona liczbami pseudolosowymi z przedziału <0,1> o rozkładzie jednostajnym

randn(n) - macierz n x n wypełniona liczbami pseudolosowymi o rozkładzie normalnym ze średnią 0 i wariancją 1

MACIERZE WIELOWYMIAROWE

METODY TWORZENIA TABEL WIELOWYMIAROWYCH

  1. Przez indeksowanie

  2. Przez zastosowanie funkcji

  3. Przez zastosowanie funkcji cat

  4. cat (dim, A, B) - scala dwie macierze A i B zgodnie z podanym wymiarem dim

  5. cat (2, A, B) - oznacza to samo

Przykład

  1. macierz trójwymiarowa o rozmiarze 2 x 3 x 2 (2 wiersze i 3 kolumny na każdej stronie, 2 strony)

  2. >> D (:, :, 1) = [130; 572] % str. 1

  3. >> D (:, :, 2) = [478, 231] % str. 2;

PODSTAWOWE FUNKCJE I STAŁE MATEMATYCZNE

sin(z), cos(z), tan(z), cot(z)

asin(z), acos(z), atan(z), acot(z)

sinh(z), cosh(z), tanh(z)

sqrt(z)

exp(z)

log(z)

log2(z)

abs(z)

angle (z) argument liczby zespolonej

real (z), imag(z) część rzeczywista i urojona z liczby zespolonej

conj(z) liczba zespolona [???]

complex(x,y)

ceil(z) zaokrąglenie w górę

floor(z) zaokrąglenie w dół

fix(z) zaokrąglenie dodatniej w dół, ujemnej w górę

round(z) zaokrąglenie

rem(x,y);mod(x,y) reszta z dzielenia x,y

sign(x) f. sgnum

Funkcje operujące na wektorach

max(x) największy element

min(x) najmniejszy element

sum(x) suma elementów

prod(x) iloczyn

mean(x) średnia arytmetyczna

Stałe matematyczne

Pi wartość pi

Eps względna wartość zmiennoprzecinkowa

i lub j pierwiastek z liczby - 1

Inf lub inf

NaN lub nan

Typy danych

Double, char, sparse, cell, sruct, unit8

Istnieje też UserObject, który jest typem definiowanym przez użytkownika

Funkcje przetwarzające łańcuchy

deblanh(s) [zgaduje, że to tak, bo się nie da odczytać]

findstr(s1, s2)

lower(s)

strcat(s1,s2,...)

strcmp(s1,s2) - porównuje 2 łańcuchy

strcmpi(s1,s2) - porównuje 2 łańcuchy

strcmp(s1,s2,n) - porównuje n pierwszych znaków w łańcuchu

strvcat(s1,s2,s3) - łączy łańcuchy w [???]

upper(s) - zamiana liter na duże

int2str(n) - konwertuje

num2str(x) - konwertuje

str2double(s) - konwertuje

Środowisko Matlaba

Okno poleceń - obsługuje funkcje

clc - wyjście

none

echo on/ echo off

more on / more off - stronnicowanie tekstów

[???] plik

[???] off/on

Formaty liczb

short 5 cyfr, liczba stałopozycyjna

short e 5 cyfr, liczba zmiennopozycyjna

long 15 cyfr, liczba stałopozycyjna

long e 15 cyfr, liczba zmiennopozycyjna

short g 5 znaczących cyfr liczby stało- lub zmiennopozycyjnej

Operatory porównania

a = = b

a ~ = b

a < b

a > b

a < = b

a > = b

Operatory logiczne

a | b alternatywa a lub b

a & b koniunkcja a i b

~ a negacja nie a

Funkcje logiczne

all (A) sprawdza czy elementy wektora A są różne od 0 i zwraca 1 (prawda) lub 0 (fałsz)

any(a) sprawdza czy któryś z elementów wektora A jest różny od 0 i zwraca 1 (prawda) lub 0 (fałsz)

isequal(A,B,…)

isempty(A)

Instrukcje warunkowe switch

switch wyrazenie

case wartosc1

instrukcja

case wartosc2

instrukcja

...

otherwise

instrukcja

end

Instrukcja w iteracyjne for

for zmienna = nowa_wartosc

instrukcja

end

W polu wyrażenie nowa_wartosc ma najczęściej 1 z dwóch postaci:

minimum : maksimum

minimum : krok : maksimum

Instrukcja while

while wyrazenie

instrukcja

end

(podobnie jak w insrukcji if)

SKRYPTY

Ścieżka dostępu

Matlab wprowadza definicję ścieżki dostępu w celu znalezienia m-plików

M-pliki znajdują się w odpowiednio zorganizowanym katalogu

Jeśli wprowadzimy pewną nazwę „nazwa” do...

Plik startowy - startup.m

Katalog bieżący

System podpowiedzi

Pol. Help

Help [???]

Metody wprowadzania danych

Wprowadzanie danych

Reprezentacja danych w pamięci i na ekranie

Dane liczbowe w pamięci Matlaba:

liczby 8 bajtowe

zespolone 16 bajtowe

znaki 8 bajtowe

>> iloczyn = A(1:2, 1:2) * A(1:2, 2:3) * A(2:3, 1:2) * A(2:3, 2:3)

save /c/plik - zapisuje dotychczasowe operacje w pliku o podanej ścieżce

load /c/plik - ładuje zapisane w pliku operacje

Pliki zawierające kod języka programowania Matlab nazywają się m-plikami.

M-pliki tworzy się za pomocą edytora tekstowego.

Wykonywanie m-pliku poprzez wloadowanie go z poziomu poleceń Matlaba.

LOADPAT - zmienna prezentująca ścieżkę dostępu do programu

Polecenia interakcyjne

INPUT - tekst jako znak zachęty do wprowadzania danych

KEY BOARD - wywołanie klawiatury w trakcie wykonywania M-pliku

MENU - generowanie okna dla realizacji wyboru danych użytkownika

PAUSE - wstrzymuje wykonywanie m-pliku...

M-pliki skryptowe

Przykład

cos (x) = 1 - x2 / (1 * 2) + x4 / (1 * 2* 3 * 4) - x6 / (1 * 2 * 3 * 4 * 5 * 6) + ...

Przykład

x = input (`Podaj wartość x=');

y = 1; k = 0; s = 1; x2 = x * x;

while abs (y) > e

k = k + 2;

y = -y * x2 / (k * (k - 1));

s = s + y;

end

Polecenie input

Składnia

x = input (`tekst')

x = input (`tekst', `s')

Opis

Wyświetla tekst i zwraca zmienna wprowadzoną przez użytkownika

Przykład

i = input (`czy liczyć dalej? (t/n)', `s');

is isempty (i)

i = `y'

end

M-pliki funkcyjne

Struktura funkcji

function f=fact(n) - linia definicji

% FACT Factorial - linia 1

% Fact (n) return - tekst pomocy

% Put simply - tekst pomocy

f = xyz;

Parametry wejścia i wyjścia oraz wszystkie instrukcje używane wewnątrz funkcji mają charakter lokalny

Pers.stant (chyba takie coos) - polecenie umożliwiające zdeklarowanie zmiennej lokalnej, która będzie zachowywać swoje wartości pomiędzy kolejnymi wywołaniami funkcji.

Zmienne lokalne i globalne

Każda funkcja zdefiniowana w Matlabie posiada swoje własne zmienne lokalne

W celu dostępu do danej zmiennej z innej funkcji lub przestrzeni roboczej Matlaba należy tą zmienna zadeklarować jako globalną we wszystkich miejscach gdzie ma być dostępna, np.: global ALPHA Beta

Zalecane jest używanie wielkich liter

Przestrzeń robocza funkcji

Każda m-funkcja posiada własny obszar pamięci oddzielonej od przestrzeni roboczej Matlaba, i nazywamy ją przestrzenią roboczą funkcji

Sprawdzanie liczby argumentów funckji

Funkcje nargin i nargout pozwalają na określenie z jaką liczbą argumentów i wyjść funkcja jest wywoływana

Zmienne i stałe specjalne

ans - zawiera ostatnią zmienna jeśli do wyrażenia nie przypisano żadnej zmiennej wyjściowej

eps - dokładność operacji zmiennoprzecinkowych w Matlabie

realmax - największa liczba zmiennoprzecinkowa

realimin - najmniejsza liczba zmiennoprzecinkowa

pi

i, j

inf, NON

Subfunkcje

Są zapisane w m-pliku po funkcjach podstawowych

Są widoczne tylko dla funkcji podstawowych lub innych subfunkcji tego samego m-pliku funkcyjnego

Funkcja podstawowa musi być zapisana w m-pliku

Funkcje prywatne

Muszą być umieszczane w katalogu o specjalnej nazwie private i są widoczne tylko przez funkcje z katalogów macierzystych.

Można w ten sposób definiować funkcje o takich samych nazwach jak oryginalne funkcji pakietu

Należy utworzyć katalog private

Poleceni użyteczne przy tworzeniu własnych m-plików

disp wyświetlanie tekstu lub macierzy

echo wyświetlanie tekstu lub macierzy

error przerywa wykonywanie m-pliku

return powrót do funkcji wywołującej

Funkcje pomocnicze

CLOCK = [ y m d h m s]

cputime - czas w sek. od uruchomienia Matlaba

etime

flops

tic toc

Potęgi

function wynik = potęga (podstawa, wykładnik);

i = 1; wynik = podstawa;

while (i < wykładnik)

wynik = wynik * podstawa;

i = i +1

end;

function wynik = potęga (podstawa, wykładnik);

i = 1; wynik = podstawa;

while (i < wykładnik)

wynik = wynik * podstawa;

i = i +1

end;

Silnia

function wynik = silnia (n)

if (nargin = = 1)

if (n < 0)

else error (`wpisz liczbę dodatnią');

i = 1;

wynik = 1

while (i < n + 1)

wynik = wynik * i;

i = i + 1

end;

end;

end;

Operacje wejścia/wyjścia

otwieranie i zamykanie plików

operacje wejścia/wyjścia niestandardowe

Podział macierzy

macierze pełne

w pamięci wewnętrznej przechowywana jest wartość każdego elementu wchodzącego w skład macierzy

zmienne stworzone w środowisku matlab są macierzami pełnymi

macierze rzadkie

zapamiętywane są tylko wartości elementów niezerowych oraz ich adresy (numer wiersza i kolumny)

Przykład

>> a = [005; 103; 070]

a =

0 0 5

1 0 3

0 7 0

---------------------------

>> [i, j, el] = find (a)

i = 2 nr wiersza

3

1

2

j = 1 nr kolumny

2

3

3

el = 1 konkretne wartości

7

5

3

Przykład

>> A = sparse (i, j, el)

A=

Compressed Column Sparse (rows = 3, cosl = 3, nuz = 4)

(2,1) -> 1

(3,2) -> 7

(1,3) -> 5

(2,3) -> 3

Macierze rzadkie

Nie powstają automatycznie!

Tworzymy ją poprzez

generowanie za pomocą odpowiednich funkcji

przekształcanie z macierzy pełnej

operacje na innych macierzach rzadkich

speye - macierz jednostkowa

sprandn - macierz losowa o zadanym wypełnieniu

sparse - generowanie macierze rzadkiej (chyba rzadkiej... ciężko rozczytać)

full - przekształcanie macierzy jednostkowej w pełną

find - wyszukiwanie elementów niezerowych

spconvert - utworzenie macierzy rzadkiej z danych w formacie ASCII

Funkcje dla macierzy rzadkiej

nuz - ilość elementów niezerowych

nonzeros - elementy niezerowe

spones - zmiana elementów niezerowych na jedynki

issparse - zwraca wartość 1 gdy zmienna jest macierzą rzadką

Operacje na plikach

przed zapisaniem lub odczytaniem danych należy utworzyć plik za pomocą funkcji fopen: id_pliku = fopen(nazwa_pliku, rodzaj_dostepu) ,gdzie:

nazwa_pliku - łańcuch znaków z nazwą otwieranego pliku

rodzaj_dostępu - łańcuch znaków o dopuszczalnych wartościach:

`r' - otwarcie pliku do odczytu

`w' - usunięcie zawartości istnijącego pliku lub otwarcie nowego i otwarcie go do zapisu

`a' - otwarcie pliku do dopisania na końcu

`r+' - otwarcie pliku do odczytu i zapisu

`w+'

`a+'

Funkcja fopen otwiera plik wskazany łańcuchem nazwa_pliku i zwraca unikatowy indentyfikator pliku (zmienna id_pliku); identyfikator ten powinien być używany we wszystkich operacjach we i wy wykonywanych na danym pliku. Jeśli operacja otwarcia pliku zakończy się sukcesem zmienna id_pliku będzie nieujemną liczbą całkowitą, else przyjmie wartość 1

Druga postać wywołania funkcji fopen jest następująca:
[id_pliku, informacja] = fopen (nazwa_pliku, rodzaj_dostepu)
informacja jest łańcuchem znakowym, który może być pomocny w ustaleniu błędu.

Zapisu elementów macierzy A w pliku [... ??? ...] identyfikatorem id_pliku dokonujemy przy pomocy funkcji fwrite:
liczba = fwrite (id_pliku, A, typ)

Argument funkcji typ pozwala określić na ilu bitach mają być zapisane dane i jak powinny być zinterpretowane

Wartości argumentu typ funkcji fwrite:

Odczyt plików binarnych

A = fread (id_pliku, rozmiar, typ)

[A, liczba] = fread (id_pliku, rozmiar, typ)

Funkcja fread wczytuje dane z pliku binarnego określonego przez identyfikator id_pliku i zapisuje je w macierzy A.

Rozmiar określa liczbę argumentów, które powinny zostać wczytane z pliku

Wartość argumentu rozmiar funkcji fread

n - odczytuje n elementów, zapisuje w wektorach kolumnowych

[m, n] - odczytuje tyle argumentów aby wypełnić kolumnami macierz m x n

Odczyt danych z pliku tekstowego dokonuje funkcja fscanf

A = fscanf(id_pliku, format, rozmiar)

[A, liczba] = fscanf(id_pliku, format, rozmiar)

Struktury tworzymy poprzez

Osoba.imie = `Jan'

Osoba.nazwisko = `Nowak'

Osoba(2).imie = `Krzysztof'

Osoba(2).nazwisko = `Kolumb'

Osoba = struct(`Jan', `Nowak')

Osoba(2) = struct(`Krzysztof', `Kolumb')

Struktury:

struct -

fieldsname (?) - podaje nazwy pól struktury

getfield - pobiera wielkość pola

setfield - ustawia wartość pola

rmfield - usuwa wartość pola

isnfield - jeżeli wskazane pole istnieje zwraca wartość 1

isstruct - jeżeli wskazana zmienna jest strukturą, zwraca wartość 1

PROGRAMOWANIE ZORIENTOWANE OBIEKTOWO

Konstruktor obiektu realizuje następujące zadania:

Przykład

function os = osoba(dane)

if norfin = = 0

os.imie = [ ];

os.nazwisko = [ ];

os = class (os, `osoba');

else if is a (dane, `osoba') %; [<- tu chyba coś jest źle]

os = dane; dane są obiektem klasy osoba

else

os.imie = dane(1);

os.nazwisko = dane(2);

os.class (os, `dane');

end

Przykład tworzenia obiektu

Pracownik = osoba({`Jan', `Nowak'})

Progr. zorien. obiektowo

Dostęp do danych w polach obiektu oraz możliwość ich modyfikacji posiadają wyłącznie metody

Przykład metody

function zmiana_nazwiska(osoba, n_nazwisko)

osoba.nazwisko = n_nazwisko

class

methods -

which - wypisuje metody obsługujące daną klasę

which-all - wypisuje wszystkie metody

isa - zwraca 1 jeżeli obiekt należy do danej klasy

is object - zwraca 1 jeżeli zmienna jest obiektem

Metody GET i SET

Metody pozwalają udostępnić dane obiektu poza katalog własny.

Get pobiera wartość danego pola

function l = get_imie(obj_name);

l = obj_name.imie;

function obj_name = set_imie(obj_name, imie_ );

obj_name.imie = imie_;

Metoda DISP

Function disp_obj(obj_name)

disp (`imie'), disp(obj_name.imie)

disp (`nazwisko'), disp(obj_name.nazwisko);



Wyszukiwarka

Podobne podstrony:
hakerzy jako subkultura, Pomoce naukowe, studia, informatyka
język XML, Pomoce naukowe, studia, informatyka
język SQL, Pomoce naukowe, studia, informatyka
wykłady - cz. 1, Pomoce naukowe, studia, informatyka
wirtualni operatorzy komórkowi, Pomoce naukowe, studia, informatyka
automatyka - ściąga, Pomoce naukowe, studia, informatyka
polityka bezpieczeństwa w sieciach komputerowych, Pomoce naukowe, studia, informatyka
analiza systemu informatycznego biura pośrednictwa pracy, Pomoce naukowe, studia, informatyka
projekt i wykonanie sieci komputerowej - cz.2, Pomoce naukowe, studia, informatyka
skróty klawiaturowe, Pomoce naukowe, studia, informatyka
etapy projektowania bazy danych, Pomoce naukowe, studia, informatyka
system zarządzania bazami danych access, Pomoce naukowe, studia, informatyka
system Netware, Pomoce naukowe, studia, informatyka
wykłady - cz. 6, Pomoce naukowe, studia, informatyka
systemy informatyczne w ekonomii, Pomoce naukowe, studia, informatyka
wykłady - cz. 2, Pomoce naukowe, studia, informatyka
algorytm 1, Pomoce naukowe, studia, informatyka
sieci ATM, Pomoce naukowe, studia, informatyka

więcej podobnych podstron