- •Вызов и выход из matlab
- •Рабочий стол (desktop) системы matlab
- •Общие свойства и возможности рабочего стола matlab
- •Command Window (Командное окно)
- •1. Выполнение функций и ввод переменных
- •2. Вычисление выделенных функций и выражений (Evaluating a Selection)
- •3. Открытие выделения (Opening a Selection)
- •4. Ввод нескольких функций в одну строку
- •5. Ввод длинных функций
- •'Author Middle Initial’]
- •6. Окраска и выделение синтаксиса
- •7. Редактирование командной строки
- •8. Очистка командного окна
- •9. Подавление вывода результатов на экран
- •10. Разбиение экранного вывода на страницы
- •12. Распечатка содержания командного окна
- •13. Выполнение программ
- •Получение справок (Getting Help)
- •Рабочее пространство системы matlab
- •Name Size Bytes Class
- •V 5x9 90 char array Grand total is 286 elements using 2984 bytes
- •Clear a m
- •Просмотр и редактирование массивов данных при помощи редактора Array Editor
- •Пути доступа системы matlab
- •Add Folder… - Добавить директорию (папку).
- •Операции с файлами
- •Дуальность (двойственность) команд и функций
- •Действия над матрицами в системе matlab
- •Формирование матриц в системе matlab
- •Сложение и вычитание матриц
- •Векторное произведение и транспонирование матриц
- •Произведение матриц
- •Inner matrix dimensions must agree. Индексирование (Subscripts)
- •Index exceeds matrix dimensions
- •Двоеточие (Colon)
- •Единичная матрица, нулевая матрицы и матрица из единиц. Двумерные массивы случайных чисел
- •Решение систем линейных уравнений
- •Квадратные системы
- •Переопределенные системы
- •Недоопределенные системы
- •Обратные матрицы и детерминанты
- •Псевдообратные матрицы
- •Plot3(X(1,:), X(2,:), X(3,:), '-o')
- •Собственные значения и собственные векторы
- •Диагональная декомпозиция
- •Дефектные матрицы
- •Сингулярное разложение матриц
- •Для матрицы
- •Полиномы и интерполяция
- •Полиномы и действия над ними
- •Представление полиномов
- •Корни полинома
- •Характеристические полиномы
- •Poly(a)
- •Вычисление значений полинома
- •Polyval(p,5)
- •Умножение и деление полиномов
- •Вычисление производных от полиномов
- •Аппроксимация кривых полиномами
- •Plot(X, y, 'o', x2, y2); grid on
- •Разложение на простые дроби
- •Интерполяция
- •Одномерная интерполяция
- •1. Полиномиальная интерполяция
- •2. Интерполяция на основе быстрого преобразования Фурье _
- •Двумерная интерполяция
- •Сравнение методов интерполяции
- •Анализ данных и статистика
- •Основные функции обработки данных
- •Xlabel('Time')
- •Min(count(:))
- •Матрица ковариаций и коэффициенты корреляции
- •Cov(count(:,1))
- •Corrcoef(count)
- •Конечные разности
- •Diff(a)
- •Обработка данных
- •Отсутствующие значения
- •Удаление выбросов значений
- •Регрессия и подгонка кривых
- •Plot(t,y,'o'); grid on
- •Полиномиальная регрессия
- •Plot(t,y,'-',t,y,'o'); grid on
- •Линейно-параметрическая регрессия1
- •Множественная регрессия
- •Графический интерфейс подгонки кривых
- •Рассмотрение основных свойств ипк
- •Уравнения в конечных разностях и фильтрация
- •Воспользуемся данными матрицы count из раздела Анализ данных и статистика. Для на-шего примера, обозначим первый столбец матрицы count через вектор X :
- •Legend('Original Data','Smoothed Data',2)
- •Многомерные Массивы
- •Создание Многомерных Массивов
- •Size(c)
- •Ndims(c)
- •Индексация
- •Nddata (2, [1 3 4], 3). Оператор двоеточия и индексирование многомерных массивов.
- •Устранение неопределенностей в многомерной индексации
- •Изменение формы (Reshaping)
- •Удаление единичных размерностей.
- •Поэлементное воздействие
- •Действия над плоскостями и матрицами
- •??? Error using eig
- •Input arguments must be 2-d.
- •Организация данных в многомерных массивах
- •Mean (mean (mean (temp)))
- •Организация и хранение данных
- •Структуры
- •Массивы структур
- •Создание массивов структур
- •Создание массивов структур с применением операторов присваивания.
- •1X2 struct array with fields:
- •Создание массива структур с использованием функции struct.
- •Обращение к данным в массивах структур.
- •1X2 struct array with fields:
- •Обращение к полям структуры с применением функций setfield и getfield
- •Определение размера массива структур
- •Добавление полей к структуре
- •Удаление поля из структуры
- •Применение функций и операторов
- •Mean((patient(2).Test)')
- •Создание функций для операций над массивами структур
- •Плоская организация
- •Поэлементная организация
- •Пример - Простая база данных
- •Client(a.Name(2,:),a.Address(2,:), a. Amount (2,:))
- •Client(b(2))
- •Вложенные структуры
- •Создание вложенных структур при помощи функции struct
- •Индексация вложенных структур
- •Массивы ячеек
- •Создание массивов ячеек
- •Применение операторов присваивания
- •Использование фигурных скобок для построения массивов ячеек
- •Задание массивов ячеек при помощи функции cell
- •Доступ к данным массивов ячеек
- •Доступ к данным массивов ячеек с использованием фигурных скобок
- •Обращение к подмножествам массива ячеек
- •[3X3 double] [3x3 double]
- •Применение функций и операторов
- •Организация данных в массивах ячеек
- •Вложение массивов ячеек
- •Создание вложенных массивов при помощи вложенных фигурных скобок
- •Создание вложенных массивов при помощи функции cell
- •Индексация вложенных массивов ячеек
- •Преобразования между массивами ячеек и числовыми массивами
- •Массивы ячеек, содержащие структуры
- •Cell_array{index}.Field
- •C_str{1}.Label Многомерные массивы ячеек
- •Многомерные массивы структур
- •Применение функций к многомерным массивам структур
- •Sum((patient(1,1,2).Test));
- •Программирование на matlab-е Программирование на языке matlab : Быстрый старт
- •Типы м-файлов
- •Что такое м-файл ?
- •Обеспечение помощи для вашей программы
- •Сценарии
- •Простой пример сценария
- •Функции
- •Простой пример функции
- •Основные части синтаксиса м-функций
- •Строка определения функции
- •Function printresults(X)
- •Тело функции
- •Комментарии
- •Имена функций
- •Как работает функция
- •Определение имени функции
- •Что происходит при вызове функцию
- •Создание p-кодов файлов
- •Pcode average
- •Как matlab передает аргументы функции
- •Рабочие пространства функций
- •Проверка числа аргументов функции
- •Передача переменного числа аргументов
- •Распаковка содержимого функции varargin
- •Упаковка выходных переменных в функцию varargout
- •Место функций varargin и varargout в списке аргументов
- •Локальные и глобальные переменные
- •Перманентные переменные (Persistent Variables)
- •Специальные переменные
- •Типы данных
- •Операторы
- •Арифметческие операторы
- •Арифметические операторы и массивы
- •Операторы отношения
- •Операторы отношения и массивы
- •Операторы отношения и пустые массивы
- •Логические операторы
- •Использованием логических операторов с массивами
- •Логические функции
- •Логические выражения использующие функцию find
- •Приоритеты операторов
- •Изменение приоритетов операторов
- •Команды управления данными (Flow Control)
- •Команды if, else, and elseif
- •If (логическое выражение)logical_expression
- •Команда if и пустые массивы
- •Команда switch
- •Команда while
- •Команда while и пустые массивы
- •While a
- •Команда for
- •Использование в качестве индексов массивов
- •Команда continue
- •Команда break
- •Команды try ... Catch
- •Команда return
- •Подфункции
- •Частные функции
- •Управление путями доступа (Managing the search path)
- •Приложение 3. Операторы и специальные символы
- •Приложение 4. Элементарные математические функции
- •Приложение 5. Элементарные матрицы и операции над ними
- •Приложение 8. Анализ данных и преобразование Фурье (Data analysis and Fourier transforms)
- •Справочник по базовым функциям системы matlab
- •Set(0, 'DefaultAxesColorOrder', [0 0 0], 'DefaultAxesLineStyleOrder', '-|-.|--|:')
- •Примеры
- •1. Задание цвета и размера маркеров
- •Plot(X, y, '--rs', 'LineWidth', 2,...
- •Set(findobj(gca, 'Type', 'line', 'Color', [0 0 1]),...
- •Xlim, ylabel, ylim, zlabel, zlim, stem
- •Спецификаторы стилей линии
- •Спецификаторы маркеров
- •Спецификаторы цвета
- •Примеры
Client(a.Name(2,:),a.Address(2,:), a. Amount (2,:))
При использовании поэлементой организации вводится вся структура
function client(B)
disp(B)
Для вызова функции client для второго клиента при этом просто записываем,
Client(b(2))
Поэлементная организация позволяет более просто расширять поля массивов строк. Если вы заранее не знаете максимальную длину строки при плоской организации, вам может потребоваться часто корректировать поля name или address , чтобы ввести более длинные строки.
Обычно данные не диктуют выбора организации базы данных. Скорее, вы сами должны решить, как вы хотите осуществлять доступ и операции над данными.
Вложенные структуры
Поле структуры может содержать другую структуру, и даже массив структур.Если вы уже имеете некоторую структуру, то для вложения новых структур в любое поле данной струк-туры вы можете воспользоваться как функцией struct, так и применить непосредственно оператор присваивания
Создание вложенных структур при помощи функции struct
Для создания вложенных структур вы можете применить функцию struct . Например, создадим массив структур размера 1х1 со вложенной в поле nest структурой:
A = struct('data',[3 4 7; 8 0 1],'nest',struct('testnum','Test 1', 'xdata',[4 2 8],'ydata',[7 1 6]));
Применим теперь операторы присваивания для добавления сторого элемента к массиву А:
A(2).data = [9 3 2; 7 6 5];
A(2).nest.testnum = 'Test 2';
A(2).nest.xdata = [3 4 2];
A(2).nest.ydata = [5 0 9];
Индексация вложенных структур
Для обращения к вложенным структурам, нужно просто добавить имена вложенных полей с использование точечных разделителей. Первая текстовая строка в индексированном выраже-нии определяет массив структур, а последующие выражения дают доступ к полям, содержа-щим другие структуры. Например, массив А, созданный ранее, имеет три уровня вложения:
Для обращения к вложенной структуре внутри А(1) запишем A(1).nest.
Для обращения к полю xdata во вложенной структуре в A(2) запишем A(2).nest.xdata.
Для обращения к элементу 2 поля ydata в A(1), запишем A(1).nest.ydata(2).
Массивы ячеек
Массивы ячеек это массивы данных системы MATLAB элементы которых являются ячейка-ми и могут служить «хранилищами» для других массивов данных. Например, одна ячейка массива ячеек может содержать матрицу действительных чисел, другая ячейка – массив тек-стовых строк, а третья – вектор комплексных значений.
Вы можете конструировать массивы ячеек любых допустимых размерностей и форм, вклю-чая многомерные массивы ячеек.
Создание массивов ячеек
Вы можете создавать массивы ячеек двумя способами:
Используя операторы присваивания.
Используя функцию cell, а затем назначая данные созданных ячеек.
Применение операторов присваивания
Вы можете создать массив ячеек путем присваивания данных индивидуальным ячейкам, по одной ячейке за один раз. MATLAB при этом автоматически создает требуемый массив яче-ек. Существуют два способа индексации данных ячеек:
Индексация ячеек
Заключите индексы ячейки в обычные скобки с использованием стандартной индексации массивов. Заключите содержимое ячейки в правой стороне оператора присваивания в фигур-ные скобки “{}”. Например, создадим массив ячеек А размера 2х2.
A(1,1) = {[1 4 3; 0 5 8; 7 2 9]};
A(1,2) = {'Anne Smith'};
A(2,1) = {3+7i};
A(2,2) = {–pi:pi/10:pi};
Внимание! Запись “{}” обозначает пустой массив ячеек, точно так же как “[ ]” обозначает пустую матрицу для числовых массивов. Вы можете использовать пустой массив ячеек в лю-бых выражениях с массивами ячеек.
Индексация содержимого ячеек
Заключите индексы ячейки в фигурные скобки, применяя стандартные обозначения масси-вов. Задайте содержимое ячейки в правой части оператора присваивания в обычном виде.
A{1,1} = [1 4 3; 0 5 8; 7 2 9];
A{1,2} = 'Anne Smith';
A{2,1} = 3+7i;
A{2,2} = –pi:pi/10:pi;
Различные примеры, приведенные ниже, используют оба приведенных синтаксиса. Обе фор-мы записи являются вполне взаимозаменяемыми.
Внимание! Если вы уже имеете числовой массив с заданным именем, не пытайтесь создать массив ячеек с помощью операторов присваивания, не уничтожив предаврительно числовой массив. Если вы не очистите числовой массив, MATLAB примет, что вы пытаетесь «сме-шать» синтаксисы ячеек и числовых массивов и выдаст сообщение об ошибке.
MATLAB выводит содержимое массива ячеек на дисплей в сжатой форме. Для нашего мас-сива А мы получим.
A =
[3x3 double] 'Anne Smith'
[3.0000+ 7.0000i] [1x21 double]
Для вывода полного содержания ячеек, нужно воспользоваться функцией celldisp. Для гра-фического вывода на дисплей архитектуры ячейки служит функция cellplot. Если вы назна-чаете данные ячейке, которая находится вне размерности имеющегося массива ячеек, MATLAB автоматически расширяет массив, чтобы включить заданный вами элемент. При этом промежуточные ячейки заполняются пустыми матрицами. Например, приведенный ни-же оператор присваивания превращает массив ячеек А размера 2х2 в массив размера 3х3.
A(3,3) = {5};
Все остальные ячейки третьего столбца и третьей строки при этом будут содержать пустые матрицы.