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...