MATLAB - macierze
Generowanie wartości
Start:krok:stop
Start:stop
V=[1:10]
V=[1:2:10]
A=[1:2:10;1:5]
Generowanie z innych macierzy
V=[1:2:10] , X=[1:5]
A=[V;X], Z=[V,X], Z=[V X]
eye() - macierz jednostkowa
ones() - macierz jedynek
zeros() - macierz zer
rand() - macierz liczb losowych o
rozkładzie jednostajnym
randn() - macierz liczb losowych o
rozkładzie normalnym
wywolanie: (n), (n, m), ([2 3])
linspace(start, stop)
linspace(start, stop, N) - wektor o 100
lub N elementach z równo rozłożonymi
wartościami pomiędzy start i stop
logspace(start, stop)
logspace(start, stop, N) - wektor o 50
lub N elementach z równo rozłożonymi
wartościami pomiędzy 10start i 10stop
A(:,j) - odwołanie do kolumny j
A(:,j:k) - odwołanie do kolumn od j do k A(i,:) - odwołanie do rzędu i
A(:) - odwołanie się do wszystkich elementów macierzy jako wektora
A(j:k) - odwołanie do elementów od j do k end - ostatni wiersz lub kolumna
A(end,:) - ostatni wiersz
A(:,end) - ostatnia kolumna
A(end) - ostatni element
A(i,:)=[] - usuwanie rzędu i
A(:,j)=[] - usuwanie kolumny j
disp() - wyświetla zawartość macierzy
size() - zwraca rozmiary macierzy
length() - zwraca długość wektora lub
większy rozmiar macierzy
AX=B A-1AX=A-1B
X=A-1B lub X=A\B
inv() - odwraca macierz
MATLAB - m-pliki
Funkcyjne- słowo kluczowe function
function [parametry y]=funk(parametry we)
Nazwa funkcji identyczna z nazwą pliku
Funkcja operuje na zmiennych lokalnych
global - słowo kluczowe pozwala na odwołanie do zmiennych globalnych
Plik może zawierać więcej funkcji, jednak tylko jedna jest zewnętrzna
MATLAB - instrukcje warunkowe
IF warunek
polecenia;
ELSEIF warunek
polecenia;
ELSE
polecenia;
END
Operatory relacyjne: ==, <, >, <=, >=, ~=.
Operatory logiczne: &, |, ~
SWITCH wyrażenie
CASE wyrażenie1
polecenia;
CASE {wyrażenie2, wyrażenie3,...}
polecenia;
...
OTHERWISE
polecenia;
END
MATLAB - pętle
FOR i = start : krok : koniec
polecenia;
END
Każda pętla może zostać przerwana w dowolnym momencie za pomocą słowa kluczowego break
WHILE warunek
polecenia;
END
WHILE true - pętla nieskończona
ctrl + c - przerwanie wykonywania skryptu
max min
mean - wartość średnia
median - mediana
var - wariancja
std - odchylenie standardowe
cov - macierz kowariancji
corrcoef - współczynnik korelacji
mode - moda
MATLAB - funkcje I/O
dlmread - wczytywanie formatowanych danych z pliku tekstowego
dlmread(`plik.txt') - separator rozpoznawany automatycznie
dlmread(`plik.txt', `\n') - separator przekazywany jako parametr
dlmwrite - formatowany zapis do pliku tekstowego
dlmwrite(`plik.txt', A) - zapis macierzy A do pliku `plik.txt' z
separatorem `,'
dlmwrite(`plik.txt', A, `;') - zapis macierzy A do pliku `plik.txt' z
separatorem `;'
importdata(`plik.txt') - import danych z pliku, typ pliku jest
rozpoznawany automatycznie, opcjonalny jest separator.
xlsread - wczytywanie danych z pliku Excela
xlswrite - zapis danych do pliku Excela
xlsinfo - informacje o pliku
uiimport - import danych za pomocą kreatora graficznego, m.in.
import danych ze schowka
MATLAB - grafika - wykresy
Wykresy 2D i 3D
Informacja o funkcjach:
help graph2d
help graph3d
Podstawowe funkcje:
plot - rysuje wykres (funkcja może przyjmować wiele argumentów)
figure - tworzy obiekt(okno) na którym może być narysowany
wykres: figure(1), plot(X)
subplot - dzieli obszar wykresu na podwykresy
plot(Y) - rysuje wykres wartości wektora Y (dziedzina automatyczna)
plot(X, Y) - rysuje wykres wartości wektora Y, dziedzinę określa wektor X
plot(X, [Y; Z]) - rysuje wykres wartości wektorów Y i Z, dziedzinę określa
wektor X
plot(X, Y, X, Z) - rysuje wykres wartości wektorów Y i Z, dziedzinę określa wektor X
plot(Y, `r--') - rysuje wykres wartości wektora Y, linia na wykresie jest
przerywana koloru czerwonego
plot(X, Y, `g.') - rysuje wykres wartości wektora Y, linia na wykresie jest
zbudowana z punktów koloru zielonego
b - niebieski g - zielony
r - czerwony c - błękitny
m - purpurowy y - żółty
k - czarny w - biały
- - ciągła : - punktowa
-. - kreskowo-punktowa
-- - kreskowa
. - punkt o - okrąg x - znak x
+ - plus * - gwiazdka s - kwadrat
d - diamet, romb v - trójkąt odwrócony ^ - trójkąt
> - trójkąt prawy < - trójkąt lewy
p - gwiazdka pięcioramienna
h - gwiazdka sześcioramienna
subplot(2,2,1) - podzieli obszar na 4 części i ustawi
się na pierwszej z nowych części.
subplot(2,2,1), plot(X, `go')
subplot(2, 2, [1,2]) - podzieli obszar na 4 części i złączy
pola 1 i 2
subplot(3, 3, [1,2,4,5]) - podzieli obszar na 9 części i
złączy pola 1, 2, 4 i 5
bar - wykres słupkowy
pie - wykres kołowy
axis on/off - włącza/wyłącza osie
grid on/off - włącza/wyłącza siatkę
title(`Tytul') - ustawia tytuł wykresu
xlabel(`opis') - ustawia opis osi X
ylabel(`opis') - ustawia opis osi Y
figure(1), plot(X), axis on, grid on, title(`tytul'),…..
hold all - `zatrzymuje' wykres i umożliwia `dorysowanie'
close all - zamyka wszystkie otwarte okienka
close 1 - zamyka wybrane okno, w tym przypadku okno 1
ŚREDNIA:
function s=srednia(r)
licznik=1;
wynik=0;
while licznik <=length(r)
wynik=wynik+r(licznik);
licznik=licznik+1;
end
s=wynik/length(r);
end
SILNIA:z warunkiem:l.całk>0
function s=silnia(n)
s=1;
for i=1:n
s=s*i;
if n>0 & floor (n)==n
end
end
KOŁO:
function op=kolo(r)
o=2*pi*r;
p=pi*(r^2);
op=[o,p];
end
FUNKCJA LICZ:
function wynik=licz(wektor,funkcja)
switch funkcja
case 'std'
wynik=std(wektor);
case 'cov'
wynik=cov(wektor);
otherwise
disp 'nieznana funkcja'
end
PĘTLA FOR - nieparzyste:
for i=6:1:12
if mod(i,2) == 1
disp(i)
end
end
PĘTLA WHILE - parzyste
i = -5;
while i>-13
if mod(i,2) == 0
disp(i)
end
i=i-1;
end
Wektor Z(dziedz.),W,V -wykres
Z = [-10:1:10]
V = Z+4;
W = 2*Z-5;
figure
plot(Z,V)
hold on
plot(Z,W,'k-.')
title('Wykres V(Z) oraz W(Z)')
xlabel('Z')
ylabel('V, W')
Wykresy-podział,wektory-zaw funkcje, zapis,wczyt
N = [0:0.5:10];
plik = fopen('dane.txt','w');
fprintf(plik,'%6.2f', N);
fclose(plik);
L = log(N);
P = N.^2-8*N-2
clear N
plik = fopen('dane.txt','r');
X = fscanf(plik, '%f')'
figure
subplot(2,1,1)
plot(X,L,X,P)
subplot(2,2,3)
plot(X,L)
subplot(2,2,4)
plot(X,P)
CW.7 TRÓJKĄT
function wynik=trojkat(a,h)
if a<=0
disp('wartosc ujemna');
else if h<=0
disp('wartosc ujemna');
else
p=(a*h)/2;
p
end
end
WSPANIAŁE 2:
a) wektor 100el, los, przedział
A=rand(1,100)*10
Lub
x=10*rand;
for i=1:99
a=10*rand;
x=[x a];
end
x
b) 10el-zainicjowany zerami
B=zeros(1,10)
Lub
y=zeros(1,10);
y
c) pętla iterowanie 100el wekt,
wynik-10el wektor
for i=1:100
x(i)=round(x(i));
for k=1:10
if x(i)==k
y(k)=y(k)+1;
break;
end
end
end
x
y
lub
wektor = rand([100,1])*9+1;
wektor10 = zeros(10,1)
for i=1:1:length(wektor)
if int32(wektor(i))>0 && int32(wektor(i))<11
wektor10(int32(wektor(i))) = wektor10(int32(wektor(i))) + 1;
end
end
wektor10
sum(wektor10);
d) pętla iterowanie po 10 el, info która l najczęściej wyst
m=max(y);
for k=1:10
if y(k)==m
sprintf('najczesciej wystapila liczba %d, %d razy', k,m)
end
end
OKRĄG -prom, srodek,równanie z krokiem, WYKRES:
r=5
yo=2
xo=-2
a=0.1*pi;
b=2*pi;
d=(0:a:b);
x=xo+r*cos(d)
y=yo+r*sin(d)
plot(x,y,'b.',xo,yo,'m^')
title('Wykres 1')
xlabel('wartosc x')
ylabel('wartosc y')
4