Раздел: Документация
0 ... 23 24 25 26 27 28 29 ... 365 s - 5.2000 7.2000 9.2000 11.2000 » si = 1.2 + v si = 5.2000 7.2000 9.2000 11.2000 » г = 1.2 - v г = -2.6000 -4.8000 -6.8000 -8.8000 » rl = v — 1.2 rl = 2.8000 4.8000 6.8000 8.8000 Умножать вектор на число можно как справа, так и слева: » V = [4 6 8 10] ; » р = v*2 р = 8 12 16 20 » pi = 2*v pi = 8 12 16 20 Делить при помощи знака / можно вектор на число: » р = v/2 Р = 2 3 4 5 Попытка деления числа на вектор-строку приводит к сообщению об ошибке: » р = 2/v ??? Error using ==> / Matrix dimensions must agree. f Примечание При делении числа на вектор-столбец сообщение об ошибке не выдается. Это связано с тем, что в данном случае происходит решение системы линейных уравнений с прямоугольной матрицей, в которой число неизвестных превосходит число уравнений. Решение систем линейных уравнений разобрано в главе 6. Если требуется разделить число на каждый элемент вектора и записать результат в новый вектор, то следует использовать операцию . /. » w = [4 2 6] ; » d = 12./w d = 3 6 2 Все вышеописанные операции применимы как к вектор-строкам, так и к вектор-столбцам. Разберем, как правильно транспонировать и вычислять сопряженные векторы в MATLAB. Для вектор-столбца и, к примеру с тремя комплексными элементами (в частности и с вещественными), сопряженный к нему и* определяется как вектор-строка из его комплексно-сопряженных элементов, а транспонированный иТ— просто как вектор-строка из его элементов, например: и — 2+3/ 1-2/ 3 + 2/ и* =[2-3/1 + 2/ 3-2/], иТ = [2 + 3/1-2/ 3 + 2/]. Аналогично определяется сопряжение и транспонирование для вектор-строки, приводящее к вектор-столбцу. Ясно, что для векторов, состоящих только из действительных чисел, операции сопряжения и транспонирования совпадают. Для нахождения сопряженного вектора в MATLAB используется апостроф, а для транспонирования следует применять точку с апострофом: » и = [2 + 3i; 1 - 2i; 3 + 2i]; » v = u1 v = 2.0000 - 3.0000i 1.0000 + 2.0000i 3.0000 - 2.0000i » v = u. V = 2.0000 + 3.0000i 1.0000 - 2.0000i 3.0000 + 2.0000i Операции . • и над вещественными векторами приведут к одинаковым результатам. Поэлементные вычисления с массивами используются на протяжении всей книги. Построение таблицы значений функции Отображение функции в виде таблицы удобно, если имеется сравнительно небольшое количество значений функции. Пусть требуется вывести в командное окно таблицу значений функции . ч sin" х v , У(л) =-+ е -1п.т l+cosa в точках 0.2, 0.3, 0.5, 0.8, 1.3, 1.7, 2.5. Задача решается в два этапа. 1.Создайте вектор-строку х, содержащую координаты заданных точек. 2.Вычислите функцию у(л) от каждого элемента вектора х и запишите полученные значения в вектор-строку у. Важно только сделать это правильно! Необходимо найти значения функции для каждого из элементов вектор-строки х, поэтому операции в выражении для функции должны выполняться поэлементно, как было описано в предыдущих разделах. » х = [0.2 0.3 0.5 0.8 1.3 1.7 2.5] х = 0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 » у = sin(x).Л2./(1 + cos(x)) + ехр(-х).*log(x) У = -1.2978 -0.8473 -0.2980 0.2030 0.8040 1.2256 1.6764 Обратите внимание, что при попытке использования операций возведения в степень Л, деления / и умножения * (которые не относятся к поэлементным) выводится сообщение об ошибке уже при возведении sin(jc) в квадрат: » у = s±n[x)"2/il + cos(x)) + ехр(-х) *log(x) ??? Error using ==> Л Matrix must be square. Дело в том, что в MATLAB операции * и Л применяются для перемножения матриц соответствующих размеров и возведения квадратной матрицы в степень, о чем написано в разделах, посвященных работе с матрицами. Таблице можно придать более удобный для чтения вид, расположив значения функции непосредственно под значениями аргумента: » X X - 0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 » у У = -1.2978 -0.8473 -0.2980 0.2030 0.8040 1.2258 1.8764 Чисто требуегся вывести значение функции в точках отрезка, отстоящих друг от друга на равное расстояние (шаг). Предположим, что необходимо вывести 0 ... 23 24 25 26 27 28 29 ... 365
|