48968 (597417), страница 16

Файл №597417 48968 (Система математических расчетов MATLAB) 16 страница48968 (597417) страница 162016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 16)

patient(1,1,2).name = 'Al Smith';

patient(1,1,2).billing = 504.70;

patient(1,1,2).test = [80 80 80; 153 153 154; 181 190 182];

patient(1,2,2).name = 'Dora Jones';

patient(1,2,2).billing = 1173.90;

patient(1,2,2).test = [73 73 75; 103 103 102; 201 198 200];

Геометрически данную структуру можно отобразить следующим образом

Применение функций к многомерным массивам структур

Для применения функций к многомерным массивам структур. нужно использовать индекси-рование полей. Например, найдем сумму столбцов структуры test в patient(1,1,2):

sum((patient(1,1,2).test));

Аналогично, просуммируем все поля billing в многомерном массиве patient:

total = sum([patient.billing]);

ПРОГРАММИРОВАНИЕ НА MATLAB

Программирование на языке MATLAB : Быстрый старт

М-файлы языка MATLAB могут быть или сценариями (scripts), которые просто выполняют серию операторов (выражений), или же они могут быть функциями (functions), допускающи-ми также входные аргументы и выходные переменные. Вы можете создать М-файлы исполь-зуя текстовой редактор и затем использовать их как любую другую функцию или команду системы MATLAB.

В простейшем случае процесс выглядит так:

  1. Вы создаете М-файл используя текстовой редактор.

  2. Вызываете М-файл из командной строки или же из другого М-файла.

Схематически это можно отобразить следующим образом:

Типы М-файлов

Как указывалось выше, имеется два типа М-файлов, общие свойства которых приведены в таблице

М-сценарии

М-функции

  • Не допускают входных и выходных переменных

  • Допускают входные и выходные аргументы

  • Оперируют в данными из рабочей области

  • Внутренние переменные по умолчанию являются локальными по отношению к функциям

  • Предназначены для автоматизации последовательности шагов, которые нужно выполнять много раз

  • Предназначены для расширения возможностей языка MATLAB (библиотеки функций, пакеты прикладных программ)

Что такое М-файл ?

В данном разделе мы рассмотрим основные части, из которых состоит М-функция. Допус-тим, мы имеем следующую функцию fact, вычисляющую факториал целого числа:

function f = fact (n) % Строка определения функции

% FACT Factorial. % Первая строка помощи (H1 line)

% FACT(N) returns the factorial of N, H! % Текст помощи (Help text)

% usually denoted by N!

% Put simply, FACT(N) is PROD(1:N).

f = prod(1:n); % Тело функции

Эта функция имеет некоторые элементы, которые являются общими для всех функций систе-мы MATLAB:

Строка определения функции. Эта строка задает имя функции , а также число и порядок входных и выходных аргументов.

Строка H1 (H1 line). H1 обозначает «первую строку» помощи. MATLAB выводит эту стро-ку в командное окно, когда вы пользуетесь функцией lookfor или запрашиваете помощь по всей директории.

Текст помощи (Help text). MATLAB выводит в командное окно данный текст вместе со строкой H1, когда вы запрашиваете помощь по конкретной функции, то есть вводите help Имя_Функции.

Тело функции. Эта часть функции содержит коды (команды), которые выполняют вычисле-ния и определяют значения всех выходных переменных.

Обеспечение помощи для вашей программы

Вы можете снабдить пользователя информацией (помощью) о вашей программе, путем включения раздела текста помощи в начало М-файла. Этот раздел начинается со строки, сле-дующей непосредственно за строкой опеределения функции и заканчивается на первой пус-той строке, или строке тела функции. Каждая строка текста (эти строки окрашены в зеленый цвет) помощи должна начинаться символом процента (%). MATLAB выводит в командное окно данный текст каждый раз когда вы вводите

help Имя_Функции

Вы можете также написать текст помощи для всей директории, путем создания файла со специальным именем Contents.m, который находится в вашей директории. Этот файл долже содержать только строки комментариев, то есть каждая строка должна начинаться со знака процента. MATLAB выводит на дисплей строки файла Contents.m всякий раз, когда вы вводите в командное окно строку

help Имя_Директории

Если данная директория не содержит файл Contents.m, то при вводе help Имя_Директории в командное окно выводится первая строка помощи (H1 line) для каждого файла директории.

Создание М-файлов: Использование текстовых редакторов

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

Внимание! Для вызова редактора нужно в меню File выбрать New и затем M-File.

Другой способ вызова редактира М-файла из командной строки состоит в использовании фу-нкции edit. For example, при вводе

edit foo

MATLAB открывает встроенный текстовой редактор на файле foo.m. Если не указать имени файла, то будет вызван редактор с новым, неозаглавленным файлом. Вы можете создать фун-кцию fact, приведенную выше, путем открытия вашего текстового редактора, ввода показан-ных строк, и запоминанием текста в файле под названием fact.m в вашей текущей директо-рии.

После того как вы создали этот файл, его можно найти в списке файлов вашей текущей директории, для чего надо ввести команду

what

Можно также распечатать в командном окне файл командой

type fact

Наконец, вы можете вычислить факториал любого целого числа, например, 5-и

fact(5)

ans =

120

Внимание! Сохраняйте все созданные или измененные вами М-файлы в директории (ката-логе), который не находится в дереве каталогов MATLAB-а. Если вы сохраните ваши М-файлы в дереве каталогов MATLAB-а, они могут быть уничтожены при установке новой версии MATLAB-а.

Сценарии

Сценарии являются простейшим типом М-файлов, поскольку они не имеют входных или выходных аргументов. Они полезны для автоматизации последовательности команд, таких как обычные вычисления, которые приходится часто выполнять в командном окне. Сценарии работают над существующими данными в рабочем пространстве; вы также можете создавать новые данные при помощи сценариев. Все переменные, созданные в результате выполнения сценариев, остаются в главном рабочем простанстве MATLAB-а, так что вы можете исполь-зовать их для дальнейших вычислений.

Простой пример сценария

Приведенные ниже выражения вычисляют функцию rho для нескольких тригонометричес-ких функций угла theta, и строят серию графиков в полярной системе координат

% An M–file script to produce % Линия комментариев

% "flower petal" plots

theta = –pi:0.01:pi; % Вычисления

rho(1,:) = 2*sin(5*theta).^2;

rho(2,:) = cos(10*theta).^3;

rho(3,:) = sin(theta).^2;

rho(4,:) = 5*cos(3.5*theta).^3;

for i = 1:4

polar(theta,rho(i,:)) % Вывод на графики

pause

end

Попробуйте ввести эти команды в М-файл, названный petals.m. Этот файл является теперь сценарием MATLAB-а. Ввод команды petals (лепестки) в командной строке MATLAB –а приводит к выполнению команд сценария. Команда pause приостанавливает выполнение цикла до нажатия какой-либо клавиши (например, Return). Таким образом, после того как сценарий отображает один график из четырех, нажатие клавиши Return приводит к появле-нию следующего. Здесь мы не имеем входных или выходных переменных; сценарий petals создает требуемые ему переменные в основном рабочем пространстве MATLAB-а. Когда вы-полнение сценария завершено, все созданные переменные (i, theta, и rho) остаются в рабо-чем пространстве. Вы можете убедиться в этом, вводя команду whos в командной строке.

Функции

Функции представляют собой М-файлы, которые принимают входные аргументы и выдают выходные. Они работают над переменными в своем собственном рабочем пространстве, ко-торое не совпадает с основным рабочим пространством, доступном из командной строки MATLAB-а.

Простой пример функции

Функция average является простым М-файлом, который вычисляет среднее значение элемен-тов вектора.

function y = average(x)

% AVERAGE Mean of vector elements.

% AVERAGE(X), where X is a vector, is the mean of vector elements.

% Non-vector input results in an error.

[m,n] = size(x);

if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))

error('Input must be a vector')

end

y = sum(x) / length(x) ; % Фактические вычисления

При вводе не векторной величины, данная функция выдает сообщение об ошибке (более точ-но, на дисплей выводится фраза «Вход должен быть вектором» ). Вы можете ввести эти ко-манды в М-файл, названный average.m. Функция average допускает единственный вход и возвращает единственный выходной аргумент. Для обращения к данной функции, введите

z = 1:99;

average(z)

что даст следующий результат

ans =

50

Основные части синтаксиса М-функций

Функции в общем случае состоят из следующий частей:

  • Строка определения функции (The Function Definition Line)

  • Строка помощи H1 (The H1 Line)

  • Текст помощи (Help Text)

  • Тело функции (The Function Body)

  • Комментарии (Comments)

Строка определения функции

Строка определения функции информирует систему MATLAB , что М-файл содержит функ-цию, и задает последовательность входных и выходных переменных. Для функции average эта строк имеет следующий вид:

где input argument – входной аргумент;

function name – имя функции;

output argumentвыходной аргумент;

keywordзарезервированное слово;

Все функции MATLAB-а имеют линию определения функции, соответствующую данной схеме. Если функции имеют несколько выходных переменных, нужно заключить список этих переменных в квадратные скобки. Входные переменные, даже если их несколько, всегда заключаются в обычные скобки. Вот пример более сложной функции

function [x,y,z] = sphere(theta, phi, rho)

Если функция не имеет выходных переменных, оставьте выход пустым, например,

function printresults(x)

или используйте пустые квадратные скобки

function [ ] = printresults(x)

Переменные, которые вы передаете функции не обязательно должны иметь то же имя, что и в линии определения функции.

Строка помощи H1

Строка H1, названная так потому что она является первой строкой текста помощи (Help text), является линией комментария, которая следует непосредственно за строкой определения фу-нкции. Поскольку она состоит из текста комментария, строка H1начинается с символа про-цента (%). Для функции average эта строка имеет вид

% AVERAGE Mean of vector elements.

(СРЕДНЕЕ ЗНАЧЕНИЕ Вычисление среднего значения векторов)

Эта строка является первой строкой текста, который появляется при вводе пользователем в командной строке команды

help function_name

Характеристики

Тип файла
Документ
Размер
9,13 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее