Matlab - wprowadzenie
Podstawowe operacje na macierzach
Wprowadzanie macierzy
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
Transpozycja macierzy
A'
Dodawanie macierzy
A + A' (wynik - macierz symentryczna)
Mnożenie macierzy
A * A
Operacje tablicowe na macierzach (element po elemencie)
B = A + 5
A \ 34
A .* A
Sumowanie kolumn macierzy
sum(A)
Sumowanie wierszy
sum(A')'
Sumowanie elementów leżących na przekątnej
sum(diag(A))
Indeksowanie elementów
A(1,4) + A(2,4)
A(8) znaczy to samo, co A(4,2)
Automatyczne rozszerzanie macierzy
X = A; X(4,5) = 17
Tworzenie macierzy zawierającej same zera, jedynki lub liczby losowe z pewnego zakresu
Z = zeros(2,4)
F = 5*ones(3,3)
N = fix(10*rand(1,10))
Konkatenacja macierzy
B = [A A+32; A+48 A+16]
Obliczanie wyznacznika macierzy
d = det(B)
Odwracanie macierzy
inv(B) * B
Uzyskiwanie wektorów liczb z pewnego zakresu
1:10
100:-7:50
0:pi/4:pi
Odwołanie do fragmentu macierzy
sum(A(1:4,4))
Dwukropek oznacza wszystkie elementy kolumny lub wiersza; słowo kluczowe end oznacza ostatnią kolumnę lub wiersz
sum(A(:,end))
Wektoryzacja operacji wymagającej pętli w innych językach
sum(1:16)/4
Operacja ,,dla każdego wiersza macierzy A zmień kolejność jego elementów"
[1 3 2 4]'
B = A(:,[1 3 2 4])
Zmiana wartości niektórych elementów macierzy
B(1:2,2:3) = 0
Usuwanie kolumny macierzy
X(:,2) = []
Usuwanie z macierzy elementów o wybranych indeksach
X(2:2:10) = []
Budowanie tablic
n = (0:9)';
pows = [n n.^2 2.^n]
(Podstawowe funkcje działają na tablicach element po elemencie.)
format short g
x = (1:0.1:2)'
logs = [x log10(x)]
Wykres słupkowy
bar(A(1,:))
Wykres funkcji y = sin(t)
t = 0:pi/100:2*pi;
y = sin(t);
plot(t,y)
Wykresy wielokrotne
y2 = sin(t-.25);
y3 = sin(t-.5);
plot(t,y,t,y2,t,y3)
Wykres funkcji dwóch zmiennych (eps - precyzja zmiennoprzecinkowa)
[X,Y] = meshgrid(-8:0.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
Uzyskanie informacji o zdefiniowanych zmiennych
who
whos
Uzyskanie spisu dostępnych kategorii funkcji
help
Uzyskanie listy funkcji należących do danej kategorii
help matfun
Uzyskanie opisu wybranej funkcji, np.
help magic
Przeszukiwanie pomocy przy użyciu słowa kluczowego
lookfor inverse
Skrypty, funkcje, instrukcje sterujące
Skrypt magicrank.m do badania rzędu kwadratów magicznych; instrukcja for
% Badanie rzedu kwadratow magicznych
r = zeros(1,32);
for n = 3:32
r(n) = rank(magic(n));
end
r
bar(r)
Funkcja num2bin.m zwraca liczbę w systemie binarnym
% bin - wektor zerojedynkowy
% num - liczba calkowita
% dlugosc - liczba elementow wektora
function [bin] = num2bin(num,dlugosc)
if nargin==1
if num==0
dlugosc = 1;
else
dlugosc = 1+floor(log2(num+.1));
end
end
potegi2 = 2.^[0:dlugosc-1];
aa = bitand(num,potegi2)>0;
bin = fliplr(aa);
Przykładowe zadania na sprawdzian
