background image

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 

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 

background image

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 
 
 
 

 

    - 

macierz 

logiczna 

 
 
 
 
B1 = [ 0 0 0, 0 0 0, 1 1 1] 

 

- macierz numeryczna 

 
 
 
 

ind =  



3
3
3



ind_w =  

ind_k =  

  0            1          2 
   
  3            4          5 
 
  6            7          8 

  0            0          0 
   
  0            0          0 
 
   1           1          1 

background image

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) 

background image

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 

 

background image

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ą