Структурами MATLAB (тип struct) являются многомерные массивы. Доступ к ним осуществляется путём указания индексов-имён. Например, можно создать скалярную структуру из двух полей:
>> S.name='мир'; S.order=2
S =
name: 'мир'
Order: 2
Расширение структуры можно выполнить по тому же правилу, что и добавление строк и столбцов в массив:
>> S(2).name='свет'; S(2).order=4
Для пополнения структуры можно также использовать специальную команду struct. Организуем третий элемент структуры S, присвоив полю name значение «волна», а полю order - значение 2.
>> S(3)=struct('name','волна','order',2)
S =
1x3 struct array with fields:
name: 'волна'
Order: 2
Чтобы вывести содержимое отдельных полей структуры, нужно использовать фигурные либо квадратные скобки в зависимости от того, символьные или числовые данные связаны с данным полем:
>> {S.name}
ans = 'мир' 'свет' 'волна'
>> [S.order]
ans = 2 4 2
Преобразование данных в массив символов осуществляется по команде char:
>> char(S.name)
ans =
Мир
Свет
Волна
Краткий обзор встроенных средств решения типовых задач алгебры и анализа
|
|
Решение систем линейных уравнений
В системе MATLAB для решения систем линейных уравнений предусмотрены знаки операций - это знаки (/) и (\) [2 - 6]. Рассмотрим систему линейных уравнений вида Ay = b, где А - заданная квадратная матрица N х N, a b - заданный вектор-столбец длины N. Для нахождения неизвестного вектор-столбца у достаточно применить операцию (\) и вычислить выражение А\b. Вот соответствующий пример:
А = [1,-2,3,-1;2,3,-4,4;3,1,-2,-2;1,-3,7,6];
b = [6;-7;9;-7];
у = А \ b
У =
2.0000
-1.0000
-2.0000
В общем случае операция (\) называется левым делением матриц и, будучи примененная к матрицам А и В в виде А\В, примерно эквивалентна вычислению выражения inv(A)*B но при этом вычисляется по-другому. Здесь под inv (А) понимается вычисление матрицы, обратной к матрице А. Операцию (/) называют правым делением матриц. Выражение А/В примерно соответствует вычислению выражения B*inv(A). Значит, эта операция позволяет решать системы линейных уравнений вида YA = В, так как решением именно этого уравнения служит выражение B*inv (A).