Navod, jak kreslit obrazky PLOTem
by AG, 20180523
Contents
Uklid - uzitecne
clear all; close all; %zavira vsechny otevrene obrazky
fce PLOT
figure_num = 1; %cislovaci index figure(figure_num) %obrazek cislo jedna %(cislovani obrazku, jinak kazda dalsi fce plot bude "prepisovat" drivejsi obrazek) %lze vyuzit v cyklu (figure_num = figure_num + 1) %lze psat i figure(1), figure(2), ...atd vektor = [8 1 0 2 4 7 6 3 ]; plot(vektor); %vykresli graf, zavislost prvku vektoru 'vektor' na jejich indexu
parabola
y = []; x = []; for i = 1:100 x = [x, i]; y = [y, x(i)^2]; end % tady mam 2 vektory delky 100: jeden s indexy, druhy s jejich mocninami figure (2) % obrazek 2 plot (x,y); % vykresli zavislost y na x (grafem parabola, viz predpis)
barvicky
lze menit barvu bodu, cim je spojovat, apod. Instrukce v tabulce po zavolani 'help plot' v Command window
kresleni nekolika obrazku do jednoho
figure(3) plot(x,y); % parabola - z predchoziho obrazku hold on % "cekej, jeste neco prikreslim" y = []; x = []; for i = 1:100 % dalsi data x = [x, i]; y = [y, x(i)^3]; % 3 stupen end plot(x,y,'r'); % r znamena cervene
matice 3D
priklad - mas nejakou 6-D matici a chces vykreslovat nektere radky v zavislosti na indexu. tzn. fixovat 5 souradnic a vznikly vektor si vytahnout do pomocne prom. a vykreslit hruba ukazka:
mtx = zeros (3, 2, 100); % vytvoril jsem si 3D matici for i = 1:3 for j = 1:2 for k = 1:100 mtx(i,j,k) = rand(1); % a naplnil ji nahodnymi cisly end end end figure_num = 4; %cislovani obrazku (prvni 3 jsem cisloval rucne) pomocny_vector = []; for i = 1:3 %fixuji prvni souradnici for j = 1:2 %fixuji druhou souradnici for k = 1:100 %plnim pomocny vektor, po jednom cislu (prepisuji postupne i-j-ty radek matice 'mtx', ktery obsahuje k cisel) pomocny_vector(k) = mtx(i,j,k); %pomoc delky 40, pro dane i a dane j end figure (figure_num) %cislovani obrazku plot (pomocny_vector, '*-g'); % hvezdicky spojene primkami (zelene) figure_num = figure_num + 1; end end % VYSTUP: (3*2)ks obrazku (pro kazdou kombinaci i s j jeden obrazek) % pozn. pro vetsi flexibilitu programu lze hranice indexu i,j,k definovat pres size(mtx) % size (mtx) vraci vektor typu [delka 'mtx' ve smeru osy x, delka 'mtx' ve smeru osy y, ....]
tensor 6D
obecne, pro N-D matici v cyklu() fixuji (N-1) smeru a posledni vytahnu do vektoru a vykreslim. pozn () : v cyklu pokud chci projit vsechny. pokud ne fixuji prirazenim (j = 2)
tensor 6D - ukazka, nic moc..
tohle je zakomentovany, protoze to pocita cca 50sek. Vytvoril jsem 6D matici a naplnil ji nahodnymi cisly, a pak vsechno vykreslil do jednoho grafu. (asi to nepouzijes, jen jsem si hral...)
% tic % mtx = zeros(10, 10, 10, 10, 10, 10); % pomocny_vektor_2 = []; % %plneni matice % for i = 1:10 % for j = 1:10 % for k = 1:10 % for l = 1:10 % for m = 1:10 % for n = 1:10 % mtx(i,j,k,l,m,n) = rand(1); % end % end % end % end % end % end % % figure(figure_num + 1) % for i = 1:10 % for j = 1:10 % for k = 1:10 % for l = 1:10 % for m = 1:10 % for n = 1:10 % pomocny_vektor_2 (n) = mtx(i,j,k,l,m,n); % end % plot(pomocny_vektor_2, '*r'); % hold on % end % end % end % end % end % toc %pozn. parova fce tic a toc vraci uplynuly cas mezi nimi...