Отчет по лабораторонй работе №5
.docx
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
_____________________________________________________________________________
Кафедра радиосистем и обработки сигналов
Дисциплина «Прикладные пакеты моделирования»
Лабораторная работа № 5
Режим программирования: script-файлы и function-файлы
Цель работы
Изучить программные средства MATLAB и овладеть навыками разработки файловсценариев (script-файлов) и внешних функций (function-файлов).
ВЫПОЛНЕНИЕ РАБОТЫ
Создание script-файла.
script
clc
clear
x= 1:1000;
Y_uniform=rand(1,1000);
Y_normal=randn(1,1000);
figure('Name','White Uniform Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_uniform),grid,title('White Uniform Noise')
subplot(2,1,2),hist(Y_uniform),grid
figure('Name','White Normal Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_normal),grid,title('White Normal Noise')
subplot(2,1,2),hist(Y_normal),grid
Пояснения:
Script-файлом называют создаваемый пользователем M-файл, представляющий собой основную (управляющую) программу.
В окне Editor.
Команды clc и clear.
Имя script-файла выбирается по тем же правилам, что и имя переменной.
Все программы пользователя, создаваемые в MATLAB, сохраняются на диске и имеют расширение m, поэтому их называют M-файлами.
Для сохранения M-файла выбрать в главном меню команду File | Save as (Сохранить как). 4. В раскрывшемся окне Save as выбрать требуемую папку, присвоить имя новому M-файлу (без расширения) и нажать кнопку Save (Сохранить).
Обращение к script-файлу в режиме прямых вычислений осуществляется по его имени.
Все переменные script-файла являются глобальными, т. е. они сохранятся в Workspace и доступны для использования в любых приложениях.
Добавление паузы и сообщения о выводе результатов.
script
clc
clear
x= 1:1000;
Y_uniform=rand(1,1000);
Y_normal=randn(1,1000);
disp(' Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>')
pause
figure('Name','White Uniform Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_uniform),grid,title('White Uniform Noise')
subplot(2,1,2),hist(Y_uniform),grid
disp(' Для вывода графика и гистограммы НОРМАЛЬНОГО БЕЛОГО ШУМА нажмите <ENTER>')
pause
figure('Name','White Normal Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_normal),grid,title('White Normal Noise')
subplot(2,1,2),hist(Y_normal),grid
Пояснения:
Вывод значений переменной или текста выполняется с помощью соответствующей функции: disp() или disp('').
Приостановить процесс выполнения программы на неопределенное (до нажатия любой клавиши) время можно по команде: pause
Ввод данных с клавиатуры.
script
clc
clear
x= input('Введите X: ');
Y_uniform=input('Введите Y_uniform: ');
Y_normal=input('Введите Y_normal: ');
disp(' Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>')
pause
figure('Name','White Uniform Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_uniform),grid,title('White Uniform Noise')
subplot(2,1,2),hist(Y_uniform),grid
disp(' Для вывода графика и гистограммы НОРМАЛЬНОГО БЕЛОГО ШУМА нажмите <ENTER>')
pause
figure('Name','White Normal Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_normal),grid,title('White Normal Noise')
subplot(2,1,2),hist(Y_normal),grid
Пояснения:
Ввод данных с клавиатуры организуется с помощью функции: = input('').
4. Создание function-файла.
function [] = F1(Y_uniform,Y_normal)
clc
clear
Y_uniform=[1:5000];
Y_normal=[1:5000];
MEAN1=sum(Y_uniform)/5000;
MEAN2=sum(Y_normal)/5000;
VAR1=var(Y_uniform);
VAR2=var(Y_normal);
Uniform= strcat([' Mean value = ',num2str(MEAN1)])
uniform= strcat([' Variance value = ',num2str(VAR1)])
Normal= strcat([' Mean value = ',num2str(MEAN2)])
normal= strcat([' Variance value = ',num2str(VAR2)])
Пояснения:
Function-файлом называют создаваемый пользователем M-файл, представляющий собой внешнюю функцию (в отличие от встроенных функций MATLAB).
Формат описания при нескольких выходных параметрах имеет вид: function [Y1,Y2,...] = (X1,X2,...).
Разделение параметров function-файлов на формальные и фактические обусловлено тем, что формальные параметры являются локальными, т. е. они (вместе с внутренними переменными function-файла) загружаются в Workspace на время вычисления внешней функции и удаляются из Workspace по завершении вычислений. Фактические же параметры сохраняются в Workspace.
В окне Editor.
Для сохранения M-файла выбрать в главном меню команду File | Save as (Сохранить как). 4. В раскрывшемся окне Save as выбрать требуемую папку, присвоить имя новому M-файлу (без расширения) и нажать кнопку Save (Сохранить).
Все программы пользователя, создаваемые в MATLAB, сохраняются на диске и имеют расширение m, поэтому их называют M-файлами.
Обращение к внешней функции подобно обращению к встроенной функции MATLAB и при нескольких выходных параметрах имеет вид: [Y1факт,Y2факт,...] = (X1факт,X2факт,...).
Они сохранятся в Workspace и доступны для использования в любых приложениях.
5. Использование function-файла в script-файле.
script
clc
clear
x= input('Введите X: ');
Y_uniform=input('Введите Y_uniform: ');
Y_normal=input('Введите Y_normal: ');
disp(' Для вывода графика и гистограммы РАВНОМЕРНОГО БЕЛОГО ШУМА нажмите <ENTER>')
pause
figure('Name','White Uniform Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_uniform),grid,title('White Uniform Noise')
subplot(2,1,2),hist(Y_uniform),grid
disp(' Для вывода графика и гистограммы НОРМАЛЬНОГО БЕЛОГО ШУМА нажмите <ENTER>')
pause
figure('Name','White Normal Noise','NumberTitle','off')
subplot(2,1,1),plot(x,Y_normal),grid,title('White Normal Noise')
subplot(2,1,2),hist(Y_normal),grid
mean_var
Пояснения:
Через имя Function-файла.
В раскрывшемся окне Save as выбрать требуемую папку, присвоить имя новому M-файлу (без расширения) и нажать кнопку Save (Сохранить). При открытом окне редактора после внесения изменений в M-файл необходимо его сохранить перед следующим запуском. Признаком несохраненного файла является символ " * " (звездочка) при его имени в окне редактора. Создание новой папки выполняется с помощью контекстного меню в окне Current Folder. Сохранение пути к требуемой папке выполняется по команде контекстного меню Add to Path | Selected Folders (Добавить путь | Выбранные папки). Сохранение пути к папке позволять в текущей сессии запускать М-файл, не открывая данную папку. При запуске M-файлов из текущей папки, путь к ней можно не сохранять.
Все переменные script-файла являются глобальными, т. е. они сохранятся в Workspace и доступны для использования в любых приложениях.
Задание на самостоятельную работу
2С. Создание script-файла. Создать script-файл для генерации "магической" матрицы с помощью функции: M = magic(n) где n и M — порядок и имя матрицы. Организовать ввод с клавиатуры порядка матрицы. Вычислить определитель матрицы. Вычислить суммы элементов столбцов, строк и главной диагонали матрицы. Растянуть матрицу в вектор-столбец, выполнить сортировку его элементов по возрастанию и вычислить сумму элементов, деленную на порядок матрицы. Перед вводом порядка матрицы и выводом результатов добавить стоки соответствующих сообщений.
script
clear
clc
disp('введите n')
n = input('n= ');
M= magic(n)
disp('Что бы вычислить порядок матрицы нажмите <Enter>')
pause
determinant=det(M)
disp('Что бы вычислить cумму элементов столбцов матрицы нажмите <Enter>')
pause
Sum_st=sum(M)
diag=diag(M);
disp('Что бы вычислить cумму элементов диагонали матрицы нажмите <Enter>')
pause
Sum_diag=sum(diag)
inver=M';
disp('Что бы вычислить cумму элементов строк матрицы нажмите <Enter>')
pause
Sum_str=sum(inver)
disp('Что бы растянуть матрицу в вектор столбец нажмите <Enter>')
pause
Vec=M(:)
disp('Что бы отсортировать вектор столбец по возростанию нажмите <Enter>')
pause
sort=sort(Vec)
disp('Что бы вычислить cумму элементов вектора столбца деленную на определитель матрицы нажмите <Enter>')
pause
sum_el=sum(Vec)/determinant
Вывод:
Изучить программные средства MATLAB
Овладел навыками разработки файловсценариев (script-файлов) и внешних функций (function-файлов).