ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
_____________________________________________________________________________
Кафедра радиосистем и обработки сигналов
Дисциплина «Прикладные пакеты моделирования»
Лабораторная работа № 5
Режим программирования: script-файлы и function-файлы
Выполнили: ст. гр. РТ-22
Проверил: к.т.н. доцент Леонюк А.С.
_____________________
Санкт-Петербург
2023
Цель работы : Изучить программные средства MATLAB и овладеть навыками разработки файлов-сценариев (script-файлов) и внешних функций (function-файлов).
Выполнение работы
Создание script-файла
script
clc;
clear;
N= 1:1000;
Y_uniform=rand(1,1000);
Y_normal = randn(1,1000);
figure('name','White Uniform Noise');
subplot(211);
plot(N,Y_uniform);
title('White Uniform Noise');
grid;
subplot(212);
hist(Y_uniform);
title('Hist White Uniform Noise');
grid;
figure('name','White Normal Noise');
subplot(211);
plot(N,Y_normal);
title('White normal Noise');
grid;
subplot(212);
hist(Y_normal);
title('Hist White normal Noise');
grid;
Script-файлом называют создаваемый пользователем M-файл, представляющий собой основную (управляющую) программу.
Script- файл создается в окне editor
для очистки экрана и Workspace используются команды clear и clc
Имя script-файла выбирается по тем же правилам, что и имя переменной
Расширение script-файлы имеют .m
Для сохранения M-файла выбрать в главном меню команду File | Save as (Сохранить как) или сочетанием клафишь Cntr+S
Обращение к script-файлу в режиме прямых вычислений осуществляется по его имени
Все переменные script-файла являются глобальными, т. е. они сохранятся в Workspace и доступны для использования в любых приложениях
Добавление паузы и сообщения о выводе результатов
script
clc;
clear;
N= 1:1000;
Y_uniform=rand(1,1000);
Y_normal = randn(1,1000);
disp('Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>');
pause;
figure('name','White Uniform Noise');
subplot(211);
plot(N,Y_uniform);
title('White Uniform Noise');
grid;
subplot(212);
hist(Y_uniform);
title('Hist White Uniform Noise');
grid;
disp('Для вывода графика и гистограммы нормального БЕЛОГО ШУМА нажмите <ENTER>');
pause;
figure('name','White Normal Noise');
subplot(211);
plot(N,Y_normal);
title('White normal Noise');
grid;
subplot(212);
hist(Y_normal);
title('Hist White normal Noise');
grid;
Comand Window
Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>
Для вывода графика и гистограммы нормального БЕЛОГО ШУМА нажмите <ENTER>
Строки с сообщением выводятся с помощью команды disp(‘ ’)
Пауза в выполнении программы выполняется командой pause
Ввод данных с клавиатуры.
script
clc;
clear;
x=input('длинна шума =');
N= 1:x;
Y_uniform=rand(1,x);
Y_normal = randn(1,x);
disp('Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>');
pause;
figure('name','White Uniform Noise');
subplot(211);
plot(N,Y_uniform);
title('White Uniform Noise');
grid;
subplot(212);
hist(Y_uniform);
title('Hist White Uniform Noise');
grid;
disp('Для вывода графика и гистограммы нормального БЕЛОГО ШУМА нажмите <ENTER>');
pause;
figure('name','White Normal Noise');
subplot(211);
plot(N,Y_normal);
title('White normal Noise');
grid;
subplot(212);
hist(Y_normal);
title('Hist White normal Noise');
grid;
Command Window
длинна шума =300
Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>
Для вывода графика и гистограммы нормального БЕЛОГО ШУМА нажмите <ENTER>
Ввод данных с клавиатуры организуется с помощью функции: переменная = input('');
Создание function-файла
function [MEANU,MEANN,VARU,VARN] = MAMA(Y_uniform,Y_normal)
clc
clear
Y_uniform=randn(1,5000); %обьявление переменных
Y_normal=rand(1,5000); %обьявление переменных
MEANU=mean(Y_uniform); %вычисление среденго
MEANN=mean(Y_normal); %вычисление среденго
VARU=var(Y_uniform); %вычисление дисперсии
VARN=var(Y_normal); %вычисление дисперсии
strcat([' Mean UNIFORM value = ',num2str(MEANU)]) %вывод значений
strcat([' Variance UNIFORM value = ',num2str(VARU)]) %вывод значений
strcat([' Mean NORMAL value = ',num2str(MEANN)]) %вывод значений
strcat([' Variance NORMAL value = ',num2str(VARN)]) %вывод значений
Comand Window
ans =
' Mean UNIFORM value = -0.0085128'
ans =
' Variance UNIFORM value = 0.9888'
ans =
' Mean NORMAL value = 0.4919'
ans =
' Variance NORMAL value = 0.082773'
Function-файлом называют создаваемый пользователем M-файл, представляющий собой внешнюю функцию (в отличие от встроенных функций MATLAB).
Формат описания при нескольких выходных параметрах имеет вид: function [Y1,Y2,...] = (X1,X2,...)
Разделение параметров function-файлов на формальные и фактические обусловлено тем, что формальные параметры являются локальными, т. е. они (вместе с внутренними переменными function-файла) загружаются в Workspace на время вычисления внешней функции и удаляются из Workspace по завершении вычислений. Фактические же параметры сохраняются в Workspace.
Файл создается в окне Editor
Для сохранения M-файла выбрать в главном меню команду File | Save as (Сохранить как) или сочетанием клафишь Cntr+S
Все программы пользователя, создаваемые в MATLAB, сохраняются на диске и имеют расширение m, поэтому их называют M-файлами.
Обращение к внешней функции подобно обращению к встроенной функции MATLAB и при нескольких выходных параметрах имеет вид: [Y1факт,Y2факт,...] = (X1факт,X2факт,...)
Файлы сохраняются в workspace.
Использование function-файла в script-файле
Функция:
function [MEANU,MEANN,VARU,VARN] = MAMA(Y_uniform,Y_normal)
MEANU=mean(Y_uniform); %вычисление среденго
MEANN=mean(Y_normal); %вычисление среденго
VARU=var(Y_uniform); %вычисление дисперсии
VARN=var(Y_normal); %вычисление дисперсии
disp('Вывод статистических характеристик РАВНОМЕРНОГО БЕЛОГО ШУМА')
strcat([' Mean UNIFORM value = ',num2str(MEANU),' Variance UNIFORM value = ',num2str(VARU)]) %вывод значений
disp('Вывод статистических характеристик НОРМАЛЬНОГО БЕЛОГО ШУМА')
strcat([' Mean NORMAL value = ',num2str(MEANN),' Variance NORMAL value = ',num2str(VARN)]) %вывод значений
Скрипт:
script
clc;
clear;
x=input('длинна шума =');
N= 1:x;
Y_uniform=rand(1,x);
Y_normal = randn(1,x);
disp('Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>');
pause;
figure('name','White Uniform Noise');
subplot(211);
plot(N,Y_uniform);
title('White Uniform Noise');
grid;
subplot(212);
hist(Y_uniform);
title('Hist White Uniform Noise');
grid;
disp('Для вывода графика и гистограммы нормального БЕЛОГО ШУМА нажмите <ENTER>');
pause;
figure('name','White Normal Noise');
subplot(211);
plot(N,Y_normal);
title('White normal Noise');
grid;
subplot(212);
hist(Y_normal);
title('Hist White normal Noise');
grid;
MAMA(Y_uniform,Y_uniform)
Command Window:
длинна шума =8484
Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>
Для вывода графика и гистограммы нормального БЕЛОГО ШУМА нажмите <ENTER>
Вывод статистических характеристик РАВНОМЕРНОГО БЕЛОГО ШУМА
ans =
' Mean UNIFORM value = 0.49885 Variance UNIFORM value = 0.08279'
Вывод статистических характеристик НОРМАЛЬНОГО БЕЛОГО ШУМА
ans =
' Mean NORMAL value = 0.49885 Variance NORMAL value = 0.08279'
Обратится к функции можно через имя файла функции
В раскрывшемся окне Save as выбрать требуемую папку, присвоить имя новому M-файлу (без расширения) и нажать кнопку Save (Сохранить). При открытом окне редактора после внесения изменений в M-файл необходимо его сохранить перед следующим запуском. Признаком несохраненного файла является символ " * " (звездочка) при его имени в окне редактора. Создание новой папки выполняется с помощью контекстного меню в окне Current Folder. Сохранение пути к требуемой папке выполняется по команде контекстного меню Add to Path | Selected Folders (Добавить путь | Выбранные папки). Сохранение пути к папке позволять в текущей сессии запускать М-файл, не открывая данную папку. При запуске M-файлов из текущей папки, путь к ней можно не сохранять
Все переменные script-файла являются глобальными, т. е. они сохранятся в Workspace и доступны для использования в любых приложениях.