Пример
» sin(A)
ans =
8.4147e-001 9.0930e-001
1.4112e-001 -7.5680e-001
Использование поэлементных операций позволяет упрощать запись математических выражений при вычислениях в Matlab
Пример.
Пусть требуется вычислить значения выражения для x от 0 до с шагом . Вычисления в Matlab
» a = 2; K = 5;
» x = 0 : pi/2/10 : pi/2;
» y = K * exp(-a*x).*sin(x)
y =
Columns 1 through 6
0 5.7130e-001 8.2428e-001 8.8451e-001 8.3645e-001 7.3497e-001
Columns 7 through 11
6.1419e-001 4.9407e-001 3.8519e-001 2.9218e-001 2.1607e-001
Полный список операций и операторов Matlab можно получить с помощью команды help ops.
ПрограммированиевMATLAB
Выше рассматривались примеры вычислений в Matlab в командном окне (режим прямых вычислений). Несмотря на значительные возможности и широкое использование на практике этот режим имеет существенные недостатки. В нем нельзя повторить вычисления без повторного набора всех команд, невозможно возвратиться назад и т.д. Работа в этом режиме не является программированием. Поэтому сколько – нибудь сложные вычисления требуют, как правило, программирования на языке Matlab и записи программ в виде М – файлов.
Matlab является языком высокого уровня для научно-технических расчетов. Он вобрал в себя все средства, необходимые для реализации различных видов программирования:
· процедурного;
· операторного;
· функционального;
· логического;
· структурного (модульного);
· объектно-ориентированного;
· визуально-ориентированного.
Язык программирования MATLAB является интерпретатором. Это означает, что каждая инструкция программы распознается и тут же исполняется, что облегчает обеспечение диалогового режима общения с системой. Этап компиляции всех инструкций, т. е. полной программы, отсутствует. Однако для программ на языке MATLAB имеются и компиляторы, транслирующие программы MATLAB в коды языков программирования С и C++. Компиляторы для системы MATLAB являются вполне самостоятельными программными средствами. В курсе ТОС компиляторы не используются.
Программа MATLAB может содержать
· Данные различного типа;
· Константы и переменные;
· Операторы;
· Встроенные команды и функции;
· Управляющие структуры (условные операторы, циклы и т.п.);
· Функции пользователя;
· Системные операторы и функции.
М - файлы (M-files) – программы MATLAB текстового формата, они могут сохраняться как файлы с расширением .m, т.е. filename.m и затем вызываться из командной строки или из другого m – файла.
M – файлы могут быть функциями с входными и выходными переменными или файлами - сценариями – наборами команд и функций MATLAB. М - файлы должны сохраняться или в рабочем каталоге или в одном из каталогов пути доступа Matlab (Matlab search path). Для создания m –файлов может использоваться встроенный редактор Matlab или любой текстовый редактор.
Скрипт – файлы (script – files) являются независимо исполняемыми блоками операторов и команд. Они содержат просто последовательность команд без входных и выходных параметров. Формат имени - filename.m. Скрипт - файл имеет следующую структуру:
% Основной комментарий
% Дополнительный комментарий
Тело файла с любыми выражениями
Такие файлы исполняются вводом имени файла в командную
строку
>> filename
Как файл – функции оформляются процедуры, рассчитанные на неоднократное выполнение и использование в вычисляемых выражениях. Файл – функция содержит входные и выходные переменные. Формат организации файл – функции с одним выходным параметром
function var = functionname (список параметров)
% основной комментарий
% дополнительный комментарий
тело функции
var = выражение
Файл – функция всегда начинается со слова – объявления function, после которого указывается имя выходной переменной var, имя самой функции и список её выходных переменных. Все переменные в файл – функции являются локальными, т.е. действуют только в теле самой функции. Основной комментарий выводится при использовании команд lookfor и help имя_каталога. Полный комментарий выводится как справочные сведения при использовании команды help имя_функции, поэтому важно указывать необходимые комментарии для файл – функций и файлов– сценариев.
Пример 1. Составим файл – функцию для вычисления длины гипотенузы прямоугольного треугольника по его катетам
function z=fun1(x,y)
% fun1 вычисляет sqrt(x^2+y^2)
% обращение z=fun1(x,y)
z=sqrt(x^2+y^2);
Пример вызова функции
>> y=fun1(3,4)
y =
5
Пример 2.
function x = tri(T, sT, Ns)
% tri генерирует Ns отсчетов сигнала треугольной формы
% с периодом T сек., частотой отсчетов sT отсчетов/сек
% обращение x = tri(T, sT, Ns)
x = 2*abs(round([0:Ns-1]/sT/T);
Пример вызова функции tri
>>
y=tri(0.1,100,50);
Если выходных параметров больше одного, то они должны указываться в квадратных скобках после слова function. Структура такой файл – функции
function [ var1, var2,…]=fname(список параметров)
% основной комментарий
% дополнительный комментарий
тело функции
var1= выражение
var2= выражение
При вызове функции в этом случае нужно указывать все выходные и входные параметры, т.е. формат вызова имеет вид
[varl,var2,... ]=fnаmе(список параметров)
Пример 3. Файл – функция вычисления дискретно – временного преобразования Фурье (ДВПФ)
function [X,w] = DTFT(x,M)
% Функция вычисляет значения DTFT от вектора x.
% Обращение
% [X,w] = DTFT(x,0)
% здесь X - вектор значений DTFT,
% w - вектор угловых частот.
% Если желательно вычислить DTFT с M значениями частоты,
% используется обращение
% [X,w] = DTFT(x,M)
%
% Этот вариант используется, когда размер вектора x
% меньше размера вектора частот w,
% при этом x дополняется нулевыми значениями
N = max(M,length(x));
% Приведение FFT к размеру 2^m
N = 2^(ceil(log(N)/log(2)))
% Вычисление fft
X = fft(x,N);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.