Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Элементы языка программирования MATLAB. Работа с матрицами





Сформируем несколько переменных, знакомясь попутно с элементами языка. Выполним команду (элементы строки матрицы при вводе разделяются запятой или пробелом; строки отделяются друг от друга точкой с запятой) формирования матрицы (рис. 4).

>>A=[1 0 0 4; 0 2 1 0; 1 2 0 0]

Завершение командной строки символом ";" в системе MATLAB означало бы подавление вывода результата в командное окно. Наша команда не заканчивается точкой с запятой, поэтому в командном окне появляется ответ в виде

A =

1 0 0 4

0 2 1 0

1 2 0 0

Размер переменной в формате вектора из двух компонент (<число строк> <число столбцов>) возвращает функция size. В данном случае

size(A)

ans =

3 4

Команда

>>A([1,3], 2:4)

формирует новую матрицу из элементов матрицы A, находящихся на пересечении строк с номерами 1 и 3 и столбцов с номерами 2, 3, 4, присваивая результат переменной ans (answer), которая всегда содержит результат вычисления последнего выражения, если он не был присвоен какой-нибудь переменной. В данном случае

ans =

0 0 4

2 0 0

Рис. 4. Работа с матрицами

 

С переменной ans можно оперировать как с любой другой. На рис. 5 матрица ans транспонируется (символ "апостроф"), и результат получает имя B (c подавлением вывода). Затем запрашивается содержимое B командой, состоящей исключительно из идентификатора этой переменной. В одной строке допускается несколько команд, разделенных символами "," или ";". При этом разделитель "," означает вывод результата той операции, после которой он поставлен.

Рис. 5. Командное окно и браузер рабочей области

 

Сформируем вектор-столбец, совпадающий со вторым столбцом матрицы A

>>a = A(:,2)

a=

Разделитель ": " используется для формирования списков или векторов. Выражение n:m означает список n, n+1, …, m; а выражение n:p:m – список от n до m c шагом p; двоеточие без пределов означает весь промежуток изменения индекса, в том числе двойного. Так команда A(:) развернула бы матрицу A по столбцам в один "длинный" вектор-столбец.

Выполним теперь несколько умножений, используя команду disp для вывода результатов. При таком выводе MATLAB не повторяет имя переменной, в остальном же команды A и disp(A) эквивалентны.

>>С=а*а'; disp(С)

0 0 0

0 4 4

0 4 4

>>d=(а')*а; disp(d)

Произведение матрицы размера [n r] на матрицу размера [r m] есть матрица размера [n m], поэтому здесь C=а*а' – матрица, а d – скалярный квадрат вектора а. Точка в сочетании со знаком операции означает, что операция выполняется поэлементно. Так " .* " означает поэлементное умножение

>>g=а.*а; disp(g')

0 4 4

Спросим теперь систему о содержимом рабочей области. Запрос whos заставляет систему дать подробный ответ

Рис. 6. Таблица с содержимым рабочей области в командном окне.

 

Таблица на рис. 6 иллюстрирует две важных особенности MATLAB:

1. MATLAB различает имена, набранные в разных регистрах.

2. В MATLAB векторы и скалярные переменные трактуются как матрицы размера [1 m],

[n 1] и [1 1].

 

Date: 2015-07-17; view: 509; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию