MATLAB Publikacja wyników

W poście dotyczącym dobrych praktyk tworzenia programów pisałem o tym, że warto stosować sekcje i komentarze, gdyż to zwiększa czytelność programów. Używanie takich elementów ma jeszcze jeden walor: MATLAB wykorzystuje je do formatowania treści podczas publikacji wyników. Jest to użyteczna funkcjonalność, która pozwala zaoszczędzić bardzo dużo czasu.

Ile razy zdarzało się Wam, że po wykonaniu obliczeń wyniki numeryczne bądź rysunki przenosiliście ręcznie do pliku tekstowego lub prezentacji aby je przedstawić zleceniodawcy lub szefowi? O ile z jednym rysunkiem nie ma kłopotu, to opracowanie analizy zawierającej ich kilkanaście staje się problemem. Rozwiązaniem jest użycie wbudowanej w MATLABA funkcji publikowania wyników obliczeń wprost do pliku. Znajduje się ona w zakładce Publish i umożliwia wyeksportowanie efektów naszej pracy, czyli wartości numerycznych, rysunków i fragmentów programów do formatu html, xml, latex, doc, ppt oraz pdf. To znacznie ułatwia pracę poprzez automatyzację procesów, które są żmudne i normalnie wymagają ręcznego „klikania”.

MATLAB Publikacja wyników

Opcje publikacji wyników dotyczą eksportu rysunków oraz tego czy MATLAB ma załączać do pliku fragmenty wykonywanego programu. Wydaje się, że to niewiele.. ale prawdziwa zaleta eksportu kryje się pod używaniem w programach komentarzy i sekcji.

Otóż MATLAB w procesie publikacji wyników wykorzystuje sekcje i odpowiednio sformatowane komentarze do formatowania tekstu w wynikowym pliku tekstowym. Na przykład sekcje są zamieniane na nagłówki, odpowiednio sformatowane komentarze na listy numerowane lub nienumerowane, itd. Do tekstu można wstawić elementy, które normalnie nie występują w programach, takie jak rysunki czy równania! To daje nam do ręki potężne narzędzie, które umożliwia już na etapie pisania programu w MATLABie tworzyć raport z naszej pracy. Zobaczymy jak wygląda to w praktyce.

%% PRZYKŁADOWY PROGRAM: Publikacja wyników 
% autor: Piotr Burnos(burnos@...) 
% AGH - EAIiIB
% Data modyfikacji: 25.10.2019
%%
clear all; close all; clc

%% Generacja sygnałów losowych 
%

% parametry próbkowania
fpr=1000; dt=1/fpr;         % częstotliwość próbkowania (dobrana tak by było spełnione twierdzenie o próbkowaniu)
t0=1.5;                     % czas obserwacji sygnałów
N=t0/dt;                    % liczba próbek
t=(0:N-1)*dt;               % wektor czasu

x=2*randn(1,N)+1;           % generujemy sygnał losowy o rozkładzie normalnym
plot(t,x); grid on; xlabel('Czas [s]');ylabel('Amplituda'); title(['Sygnał stochastyczny']); grid on;


%% Obliczanie parametrów sygnału (momentów)
% 

% wartość średnia
xu=mean(x);
disp(['wartość srednia = ' num2str(xu) ])

%odchylenie standardowe
xs=std(x);
disp(['odchylenie standardowe = ' num2str(xs) ])

Powyższy program po uruchomieniu poprzez publikację wyników generuję plik doc o następującej zawartości:

MATLAB Publikacja wyników

Jak widać nagłówek programu został zamieniony w tytuł dokumentu, a sekcje w kolejne akapity. Został dodany spis treści, a kolejne fragmenty wykonywanego programu są uzupełnione o dane wyjściowe, rysunki i liczby. Zobaczmy teraz jak można formatować tekst wykorzystując do tego komentarze:

%% PRZYKŁADOWY PROGRAM: Publikacja wyników 
% autor: Piotr Burnos(burnos@...)
% AGH - EAIiIB
% Data modyfikacji: 25.10.2019
%%
clear all; close all; clc

%% Generacja sygnałów losowych 
%

% parametry próbkowania
fpr=1000; dt=1/fpr;         % częstotliwość próbkowania (dobrana tak by było spełnione twierdzenie o próbkowaniu)
t0=1.5;                     % czas obserwacji sygnałów
N=t0/dt;                    % liczba próbek
t=(0:N-1)*dt;               % wektor czasu
x=2*randn(1,N)+1;           % generujemy sygnał losowy o rozkładzie normalnym

% Tu normalnie byłaby dalsza część programu, ale zobaczmy jak można
% formatować tekst.

%% Formatowanie tekstu w _MATLABie_
% Do dyspozycji mamy:
%%
% 
% * Listy nienumerowane (taka jak ta)
% * Listy numerowane
% * Wstawianie rysunków
% * Wstawianie równań
% * Linków
% * itp.
% 


%%
% Można wstawiać równania: $x^2+e^{\pi i}$ oraz odnośniki do stron
% internetowych: <http://www.mathworks.com MathWorks>. Jest więc wiele
% możliwości ułatwiających "czytanie" gotowego raportu z działania programu.
% Kod programu można ale nie trzeba eksportować do dokumentu podczas
% publikacji. Można również umiescić fragment jako tekst formatowany, tak
% jak poniżej:

%%
% 
%   for x = 1:10
%       disp(x)
%   end
% 

%%
% Powyższy fragment w m-pliku znajduje się w komentarzu i nie zostanie
% wykonany. Poniżej dalsza część programu...


%% Obliczanie parametrów sygnału (momentów)
% 

% wartość średnia
xu=mean(x);
disp(['wartość srednia = ' num2str(xu) ])

%odchylenie standardowe
xs=std(x);
disp(['odchylenie standardowe = ' num2str(xs) ])

Tak wygląda gotowy raport po publikacji:

Matlab publikacja wyników

Jak widać dzięki wyrobieniu sobie nawyku odpowiedniego komentowania programu, można wiele zyskać. Program sam w sobie jest czytelny, trudniej o pomyłkę, a na etapie publikacji wyników otrzymujemy dokument, który jest podstawą wykonania pełnego raportu z danego zadania. Więcej na temat publikacji wyników i kolejne przykłady, znajdziecie na filmie.

(Visited 46 times, 1 visits today)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *