Inżynierskie pakiety oprogramowania (CAD/CAM)
dr M. Pluciński
-----------------------------------------------------------------------------------------------------------------
Created by Maya
1
WYKŁAD 3 (22/03/2007)
Wykresy 3D
[x, y] = meshgrid(1 : 3, 1 : 4);
Przykład:
)
(
2
1
1
xy
x
e
z
+
−
+
=
]
2
,
2
[
−
∈
x
]
1
,
3
[
−
∈
y
[x, y] = meshgrid(-2 : 0.1 : 2, -3 : 0.1 : 1);
z=1./(1+exp(-(x.^2+x.*y)));
%
mesh kreśli siatkę 3D
mesh(x,
y,
z)
mesh(Vx,
Vy,
2)
%
surf
kreśli powierzchnię 3D
surf(x,
y,
z)
%
view
obracanie obserwatora względem wykresu
view(x1,
y1,
z1)
%
surfl
kreśli wykres w formie powierzchni
surfl(x, y, z, V1, V2)
% contour(x, y, z)
kreśli poziomo
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
x krok
y max
x min
x max
x
y
z
Vx = x min : x krok : x max;
Vy = y min : y krok : y max;
[x,y] = meshgrid(Vx,Vy)
1 2 3
1 2 3
1 2 3
1 2 3
x =
y =
1 1 1
2 2 2
3 3 3
4 4 4
Inżynierskie pakiety oprogramowania (CAD/CAM)
dr M. Pluciński
-----------------------------------------------------------------------------------------------------------------
Created by Maya
2
% contour3(x, y, z)
meshc / surfc
kreśli, gdzie pod siatką są poziome
% axis([xmin xmax, ymin ymax, zmin zmax])
skaluje wykres
Indeksowanie macierzy
A =
A(2, 3)
A(8)
% find
umożliwia odnajdywanie indeksów macierzy
ind
=
find(warunek)
Przykład:
ind = grind(A>=6)
[ind_w, ind_k] = grind(A>=6)
% ind=f(warunek, u)
zwróci u pierwszych elementów spełniających war.
% ind=f(warunek, u, first/last)
czy od początku, czy od końca
A(find(A>=6)) = -1;
wszystkie elementy >=6 zastąpi -1
B=A > 5
B
=
-
macierz
logiczna
B1 = [ 0 0 0, 0 0 0, 1 1 1]
- macierz numeryczna
ind =
3
6
9
3
3
3
1
2
3
ind_w =
ind_k =
0 1 2
3 4 5
6 7 8
0 0 0
0 0 0
1 1 1
Inżynierskie pakiety oprogramowania (CAD/CAM)
dr M. Pluciński
-----------------------------------------------------------------------------------------------------------------
Created by Maya
3
if A ....
.
.
macierz A będzie zamieniona na macierz logiczną
end
A(A>=6)=-1
- zrobi to samo co ‘find’
A(B)=-1 - jest dopuszczalne wtedy tylko, gdy macierz B jest macierzą logiczną
A(find(A))=10
- w miejsce wszystkich elementów wpisz 10
z wyjątkiem elementu 0
islogical(A)
jakiego typu jest macierz (logiczna)
isnumeric(A)
jakiego typu jest macierz (numeryczna)
isstr(x)
sprawdza, czy string
isNaN
sprawdza, czy not a number
isinf
sprawdza,czy jest nieskończony
isglobal sprawdza, czy jest globalna
exist(‘x’)
sprawdza, czy zmienna istnieje
all(warunek)
zwraca prawdę, jeżeli wszystkie spełniają warunek
an(warunek)
zwraca prawdę, jeżeli co najmniej jeden spełnia warunek
Macierze wielowymiarowe
budowa macierzy 3-wymiarowej:
A=[1 2 3; 4 5 6; 7 8 9];
A(:, :, 2) = [1 1 1, 2 2 2, 3 3 3;
A(:, :, 3) = eye(3);
budowa macierzy 4-wymiarowej:
A(:, :, 1, 2) = ones(3);
A(:, :, 2, 2) = zeros(3);
A(:, :, 3, 2) = rand(3);
ndims(A) – zwraca ilość wymiarów
1 1 1
2 2 2
3 3 3
1 2 3
4 5 6
7 8 9
A(2, 3 ,2)
Inżynierskie pakiety oprogramowania (CAD/CAM)
dr M. Pluciński
-----------------------------------------------------------------------------------------------------------------
Created by Maya
4
B = ones (3, 3, 4)
- 3 wiersze, 3 kolumny, 4 strony
cat
skleja macierze
cat(dim,
A1,
A2)
B = cat(3, eye(2), ones(2)) - sklei macierz jednostkową i pojedynczą wzdłuż 3 wymiaru
repmat
replicated matrix (A, W, K) – W-ilość wierszy, K – kolumn
B = repmat (A, [w k])
B = repmat (A, [w k strony])
Przykład:
repmat(eye(2), 2, 3)
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
repmat (2, 2, 3)
ones(2, 3)*2
2 2 2
2 2 2
Wielomiany
P
1xn
)
(
...
)
2
(
)
1
(
2
1
n
p
x
p
x
p
y
n
n
+
+
⋅
+
⋅
=
−
−
y = polyval (p, x)
p
–
wektor
współczynników
r=roots
(p)
obliczanie pierwiastków
g=decon(p1, -2)
iloraz wielomianów
p=conv(p1, p2)
mnożenie wielomianów
[q, r]=deconv(p1, p2)
q-wynik, r-reszta z dzielenia
p=polyfit[x, y, n]
dokonuje aproksymacji pktów x, y wielomianem rzędu n
f zero
szuka miejsca zerowego funkcji (‘F’, xø, eps, wyn)
- eps – dokładność; wyn - czy mają być wyświetlane
wyniki pośrednie
x=f mins(‘F’, xø)
x=f mins(‘F’, x1, x2)
szuka min w przedziale
Inżynierskie pakiety oprogramowania (CAD/CAM)
dr M. Pluciński
-----------------------------------------------------------------------------------------------------------------
Created by Maya
5
!!! nie ma funkcji f max – można użyć (- fmin)!!!
q=quad()
liczy całki oznaczone
q=quad(‘F’, a, b, eps, trace)
(trace – parametr opcjonalny)
a-dolna granica, b-górna granica
Przykład:
)
cos(
)
sin(
)
cos(
)
sin(
2
/
0
x
x
y
x
x
⋅
=
∫
π
wywołanie:
quad(‘sincos’, 0, pi/2)
quad8
liczy całkę oznaczoną inną metodą