exponenta event banner

Создание презентации на основе результатов приложения MATLAB

В этом примере показано, как использовать API MATLAB ® для PowerPoint ® (PPT API) для создания презентации Microsoft ® PowerPoint ® на основе результатов работы приложения MATLAB. Пример создает презентацию на основе результатов приложения, которое предсказывает население Соединенных Штатов. Вот слайды, создаваемые в примере:

Создание презентации

Импортируйте пакет PPT, чтобы не использовать длинные, полные имена.

import mlreportgen.ppt.*;

Для облегчения удаления изображений, создаваемых в примере, создайте массив ячеек для хранения изображений.

images = {};

Создайте презентацию с использованием шаблона по умолчанию.

ppt = Presentation('population.pptx');
open(ppt);

Добавление слайдов в презентацию

Презентации PowerPoint состоят из слайдов, созданных из предопределенных макетов. Макеты содержат заполнители, заполняемые созданным содержимым. Предопределенные макеты принадлежат шаблону шаблона слайдов, определяющему стили.

Добавьте первый слайд в презентацию, используя Title Slide макет.

slide1 = add(ppt,'Title Slide');

Замените заголовок и подзаголовок на слайде с помощью метода замены.

replace(slide1,'Title','Modeling the US Population');
replace(slide1,'Subtitle','A Risky Business');

Добавьте второй слайд в презентацию с помощью Title and Content макет. Замените заголовок.

slide2 = add(ppt,'Title and Content');
replace(slide2,'Title','Population Modeling Approach');

Добавить текст в Content местозаполнитель с использованием массива ячеек.

replace(slide2,'Content',{ ...
    'Fit polynomial to U.S. Census data' ...
    'Use polynomials to extrapolate population growth' ...
    ['Based on "Computer Methods for Mathematical Computations",'...
   ' by Forsythe, Malcolm and Moler, published by Prentice-Hall in 1977'] ...
    'Varying polynomial degree shows riskiness of approach'});

Добавьте третий слайд к презентации с помощью Title and Content макет. Замените заголовок.

slide3 = add(ppt,'Title and Content');
replace(slide3,'Title','US Census data from 1900 to 2000');

Создать участок данных переписи населения США с 1910 по 2000 год.

% Time interval
t = (1910:10:2000)';

% Population
p = [91.972 105.711 123.203 131.669 150.697...
    179.323 203.212 226.505 249.633 281.422]';

% Plot
fig1 = figure;
plot(t,p,'bo');
axis([1910 2020 0 400]);
title('Population of the U.S. 1910-2000');
ylabel('Millions');

Преобразование графика в изображение. Добавьте изображение в список удаляемых изображений в конце создания презентации. Вы не должны удалять изображения, пока не закроете презентацию.

img1 = 'plot1.png';
saveas(fig1,img1);

images = [images {img1}];

Замените Content местозаполнитель с изображением.

replace(slide3,'Content',Picture(img1));

Добавьте четвертый слайд к презентации с помощью Comparison макет. Этот слайд используется для сравнения кубических и квартальных экстраполяций данных о населении.

slide4 = add(ppt,'Comparison');
replace(slide4,'Title','Polynomial Degree Changes Extrapolation');

Вычислите коэффициенты для полиномиальной аппроксимации данных совокупности.

n = length(t);
s = (t-1950)/50;
A = zeros(n);
A(:,end) = 1;
for j = n-1:-1:1
    A(:,j) = s .* A(:,j+1);
end
c = A(:,n-3:n)\p;

Замените Left Text местозаполнитель с текстом.

replace(slide4,'Left Text','Cubic extrapolation');

Вычислите кубическую экстраполяцию.

v = (1910:2020)';
x = (v-1950)/50;
w = (2010-1950)/50;
y = polyval(c,x);
z = polyval(c,w);

fig2 = figure;
hold on
plot(v,y,'k-');
plot(2010,z,'ks');
text(2010,z+15,num2str(z));
hold off

Создайте изображение на графике и добавьте его в список удаляемых изображений.

img2 = 'plot2.png';
saveas(fig2,img2);

images = [images {img2}];

Замените Left Content местозаполнитель с изображением.

replace(slide4,'Left Content',Picture(img2));

Замените Right Text местозаполнитель с текстом.

replace(slide4,'Right Text','Quartic extrapolation');

Вычислите квартальную экстраполяцию.

c = A(:,n-4:n)\p;
y = polyval(c,x);
z = polyval(c,w);
fig3 = figure;
hold on
plot(v,y,'k-');
plot(2010,z,'ks');
text(2010,z-15,num2str(z));
hold off

Создайте изображение из графика, добавьте его в список удаляемых изображений и замените Right Content местозаполнитель с изображением.

img3 = 'plot3.png';
saveas(fig3,img3);

images = [images {img3}];
replace(slide4,'Right Content',Picture(img3));

Добавить последний слайд в презентацию с помощью Title and Content макет.

slide5 = add(ppt,'Title and Content');
replace(slide5,'Title','As the degree increases, the extrapolation becomes even more erratic');

Создайте график, чтобы продемонстрировать, что по мере увеличения степени экстраполяция становится еще более неустойчивой.

fig4 = figure;
cla
plot(t,p,'bo')
hold on
axis([1910 2020 0 400])
colors = hsv(8);
labels = {'data'};
for d = 1:8
   [Q,R] = qr(A(:,n-d:n));
   R = R(1:d+1,:);
   Q = Q(:,1:d+1);
   c = R\(Q'*p);   
   y = polyval(c,x);
   z = polyval(c,11);
   plot(v,y,'color',colors(d,:));
   labels{end+1} = ['degree = ' int2str(d)];
end
legend(labels, 'Location', 'NorthWest')
hold off

Создание изображения на основе графика и замена Content местозаполнитель с изображением.

img4 = 'plot4.png';
saveas(fig4,img4);

images = [images {img4}];
replace(slide5,'Content',Picture(img4));

Закрыть и просмотреть презентацию

close(ppt);
rptview(ppt);

Удалить изображения

Когда презентация закрывается, изображения копируются в презентацию. Теперь вы можете удалить изображения.

len = length(images);
for i = 1:len
    delete(images{i});
end

См. также

|

Связанные темы