Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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].
|