| 
 
  | 
| 
 
  | 
 Урок №8. Операторы и функции 
 Начиная с этого урока мы переходим к изучению математических и логических возможностей системы MATLAB. Их изучение мы начнем с операторов и функций — тех кирпичиков, из которых строятся математические выражения. Вычисления математических выражений составляют главную цель любой системы, предназначенной для численных расчетов. Здесь мы рассмотрим полный набор операторов входного языка системы MATLAB 6.0 и соответствующих им функций. Напомним, что полный список операторов выводится командой help ops. Операторы и специальные символы системы MATLAB можно разделить на ряд категорий, которые рассматриваются ниже. Арифметические операторы и функции Арифметические операторы являются самыми распространенными и известными. В отличие от большинства языков программирования в системе MATLAB практически все операторы являются матричными, т. е. предназначены для выполнения операций над матрицами. В табл. 8.1 приводится список арифметических операторов и синтаксис их применения. Таблица 8.1. Арифметические операторы и функции MATLAB 
 Обратите внимание на то, что каждый оператор имеет аналогичную по назначению функцию. Например, оператору матричного умножения * соответствует функция mtimes(Ml,M2). Примеры применения арифметических операторов уже не раз приводились, так что ограничимся несколькими дополнительными примерами: » А=[1 2 3]; » В=[4 5 6]: » В-А ans= 
 Соответствие функций операторам и командам в системе MATLAB является одним из основных положений программирования. Оно позволяет одновременно использовать элементы как операторного, так и функционального программирования. Следует отметить, что в математических выражениях операторы имеют определенный приоритет исполнения. Например, в MATLAB приоритет логических операторов выше, чем арифметических, приоритет возведения в степень выше приоритетов умножения и деления, приоритет умножения и деления выше приоритета сложения и вычитания. Для изменения приоритета операций в математических выражениях используются круглые скобки. Степень вложения скобок не ограничивается. Операторы отношения и их функции Операторы отношения служат для сравнения двух величин, векторов или матриц. Все операторы отношения имеют два операнда, например х и у, и записываются, как показано в табл. 8.2. Таблица 8.2. Операторы и функции отношения 
 Данные операторы выполняют поэлементное сравнение векторов или матриц одинакового размера и возвращают значение 1 (True), если элементы идентичны, и значение 0 (False) в противном случае. Если операнды — действительные числа, то применение операторов отношения тривиально: » eqC2.2) ans = 1 » 2==2 ans = 1 » ne(l,2) ans = 1 » 2 ~- 2 ans = 0 » 5 > 3 ans = 1 » le(5.3) ans = 0 Следует отметить, что операторы <, <=, > и >= при комплексных операндах используют для сравнения только действительные части операндов — мнимые отбрасываются. В то же время операторы == и ~= ведут сравнение с учетом как действительной, так и мнимой частей операндов. Следующие примеры поясняют это положение: » (2+3i)>-(2+i) ans= 1 » (2+3i)>(2+i) ans= 0 » abs(2+3i)>abs(2+i) ans = 1 » (2+3i)—(2+i) ans = 0 » (2+3i)-(2+i) ans = 1 Если один из операндов — скаляр, происходит сравнение всех элементов второго операнда-массива со значением этого скаляра: M= -1 0 1 2 » М>=0 ans = 0 1 1 1 В общем случае операторы отношения сравнивают два массива одного размера и выдают результат в виде массива того же размера: » М>[0 1;.1 0] 
ans = 0 0 0 1 Таким образом, спектр применения операторов отношения в системе MATLAB шире, чем в обычных языках программирования, поскольку операндами являются не только числа, но и векторы, матрицы и массивы. Возможно применение операторов отношения и к символьным выражениям: » 'b'>'а' ans = 1 » 'abc'= ='abc' 
 ans = 1 1 1 » 'cba'<'abc' ans = 0 0 1 В этом случае символы, входящие в выражения, представляются своими ASCII-кодами. Строки воспринимаются как векторы, содержащие значения кодов. Все это надо учитывать при использовании управляющих структур языка программирования, в которых широко применяются операторы отношения. Логические операторы и соответствующие им функции служат для реализации поэлементных логических операций над элементами одинаковых по размеру массивов (табл. 8.3). Таблица 8.3. Логические операторы и функции MATLAB 
 Работа операторов поясняется приведенными ниже примерами: »А=[1 2 3]; »В=[1 0 0]; » and(A.B) ans = 1 0 0 » оr(А.В) ans = 1 1 1 » А&В ans = 1 0 0 » А|В ans= 1 1 1 » not(А) ans = 0 0 0 » not(B) ans = 0 1 1 » ~B ans= 0 1 1 » xor(A.B) ans = 0 1 1 » any(A) ans = 1 » all([0 0 0]) ans = 0 » all(B) ans = 0 » and('abc'.'012') ans = 1 1 1 Обратите внимание, что аргументами логических операторов могут быть числа и строки. При аргументах-числах логический нуль соответствует числовому нулю, а любое отличное от нуля число воспринимается как логическая единица. Для строк действует уже отмеченное правило — каждый символ строки представляется своим ASCII-кодом. К классу операторов в системе MATLAB относятся также специальные символы. Они предназначены для создания самых разнообразных объектов входного языка и языка программирования системы и придания им различных форм. В табл. 8.4 представлено описание полного набора специальных символов. Таблица 8.4. Специальные символы MATLAB 
 Теперь рассмотрим их более подробно. 
 Оператор : использует следующие правила для создания векторов: 
 Ниже показано, как выбирать с помощью оператора : строки, столбцы и элементы из векторов, матриц и многомерных массивов: 
 Символы ( ) (круглые скобки) используются для задания порядка выполнения операций в арифметических выражениях, указания последовательности аргументов функции и указания индексов элемента вектора или матрицы. Если X и V — векторы, то X(V) можно представить как [X(V(D), X(V(2)).....X(V(n))]. Элементы вектора V должны быть целыми числами, чтобы их можно было использовать как индексы элементов массива X. Ошибка генерируется в том случае, если индекс элемента меньше единицы или больше, чем size(X). Такой же принцип индексирования действителен и для матриц. Если вектор V имеет т компонентов, а вектор W — п компонентов, то A(V,W) будет матрицей размера mxn, сформированной из элементов матрицы А, индексы которой — элементы векторов V и W. Символы [ ] (квадратные скобки) используются для формирования векторов и матриц: 
 Еще несколько примеров: 
 Символы { } (фигурные скобки) используются для формирования массивов ячеек. Например, {magic(3) 6.9 'hello'} — массив ячеек с тремя элементами. Символ . (десятичная точка) используется для отделения дробной части чисел от целой. Например, 314/100, 3.14 и .314е1 — одно и то же число. Кроме того, символ точки . используется для выделения полей структур. Например, A.(field) и A(i).field, где А — структура, означает выделение поля структуры с именем «field». Ниже перечислено назначение остальных специальных символов MATLAB: 
 » a-'Hello''my friend' а = Hello'my friend 
 Системные переменные и константы Как отмечалось ранее, в состав объектов MATLAB входит ряд системных переменных и констант, значения которых устанавливаются системой при ее загрузке или автоматически формируются в процессе вычислений. Описание таких объектов приводится ниже. 
 » cos([0:2*pi]) ans = 1.0000 0.5403 -0.4161 -0.9900 -0.6536 0.2837 0.9602 
 » [str.maxsize] = computer str = PCWIN maxsize = 268435455 
 » eps 
 ans = 
2.2204е-016 
 » w=3+5i w = 3.0000 + 5.00001 
 » 4/0 Warning: Divide by zero. ans= 
Inf 
 
 » s=4-3j s = 4.0000 - 3.00001 
 » s=0/0 Warning: Divide by zero. s =NaN Функция nargchk часто используется внутри m-файлов для проверки соответствия количества входных параметров (аргументов): 
 » msg = nargchk(4,9.5) msg = [ ] » msg = nargchk(4.9.2) msg = Not enough input arguments. 
 Еще две функции позволяют определить число входных и выходных параметров функции: 
 Применение этих функций мы рассмотрим немного позже при описании структуры функций. Продолжаем перечисление системных переменных: 
 » pi ans = 3.1416 
 » n = real max n = 1.7977е+308 
 » n = realmin n = 2.2251е-308 Переменные varargin и varargout позволяют использовать в функциях переменное число входных и выходных параметров: 
 Переменные varargin и varargout используются только внутри m-файлов функции для задания произвольных аргументов функции. Эти переменные должны быть последними в списке входов или выходов, а для их обозначения могут использоваться только строчные буквы. Использование этих возможностей мы рассмотрим несколько позже. Ряд функций предназначен для поразрядной логической обработки данных: 
 » f-bitand(7,14) f = 6 
 » g=bitcmp(6,4) g = 9 
 » v=bitor(12.21) v = 29 
 » bitmax ans = 9.0072е+015 
 » d=bitset(12.2.1) d = 
 14 
 » f=bitshift(4.3) f = 32 
 
» disp(dec2bin(23)) 
10111 
» С = bitget(23.5:-l:l) 
С = 1 0 1 1 1 
 » x=bitxor(12.31) х = 19 Чтобы операнды этих функций гарантированно были целыми числами, при их задании рекомендуется использовать функции ceil, fix, floor и round. Множество — первичное понятие математики, не имеющее четкого определения. Под множеством подразумевается совокупность некоторых объектов, например книг в библиотеке, людей в зале или элементов вектора. В этом разделе приводятся некоторые функции для обработки множеств, представленных векторами. Они широко используются при анализе и обработке данных. 
 Пример: » А = [1 7 2 6]: В = [7 2 3 4 6 1]; » [c.ia.ib] = intersect(А.В) 1 2 6 7 ia = 1 3 4 2 ib = 6 2 5 1 
 Пример: » set = [0 1 3 5 7 9 11 15 17 19]; » а=[1 2345678]; » k = ismember(a.set) k = 
1    0   
1    0    1    0   
1    0 
 Если входной массив а является матрицей, то он расценивается как вектор-столбец а(:). Пример: » а=[2 3 5 7 8 9 10 13 20]; » b=[1456894] » с = setdiff(a.b) с= 2 3 7 10 13 20 
 Если массив а является матрицей, то он расценивается как вектор-столбец а(:). Пример: » а = [-1 0 1 Inf -Inf NaN]; » b = [-2 pi 0 Inf]; » с = setxor(a.b) с = -Inf -2.0000-1.00001.0000 3.1416 NaN 
 » а=[2.4.-4,9.0]:b=[2.5,4]: » [c.ia,ib]=union(a.b) с = -4 0 2 4 5 9 ia = 3 5 4 ib = 1 3 2 
 Примеры: » b=[-2,3.5.4,1.-6,2.2.7] 
 b= -2 3 5 4 1 -6 2 2 7 » [c.i.j]=unique(b) с = 
 Ряд функций служит для возврата текущего времени и даты. Они перечислены ниже. 
 Вызов функции без присваивания результата выдает календарь на экран. Примеры: » calendar Jul 2000 
 calendar(700477) Nov 1917 
 
 » c=clock с = l.0e+003 * 2.0000 0.0070 0.0240 0.0200 0.0120 0.0148 » fix(clock) ans = 2000 7 24 20 12 26 
 » +tl=cputime: w=surf(peaks(30));cputime-tl ans = 0.2200 
 » d = date d = 24-Jul-2000 
 Пример: » n1 = datenum('26-Nov-1998') n1 = 730085 » Y-[1998.2000]:M-[l,12]:D-23;N-datenum(Y.M.D) N = 729778 730843 
 Таблица 8.5. Форматы представления даты 
 
 Любой компонент входного вектора, который не вписывается в нормальный диапазон дат, преобразуется в следующий диапазон (так, например, несуществующая дата June 31 преобразуется в July 1). Допускаются значения нулевого месяца и нулевого дня. Например: » n = datevecC 11/31/98') 
n= 1998 12 1 0 0 0 » n = datevec(710223) n = 1944 7 10 0 0 
О eomday (Y, М) — возвращает последний день года и месяца, заданных соответственно элементами массивов Y и М. Пример (нахождение високосных лет двадцатого столетия): » у = 1900:1999; » Е = eomday(y.2); » y(find(E==29)) 
 ans= 
Columns 1 through 6 1904 1908 1912 1916 1920 1924 
 Columns 7 through 12 1928 1932 1936 1940 1944 1948 
 Columns 13 through 18 1952 1956 1960 1964 1968 1972 
 Columns 19 through 24 1976 1980 1984 1988 1992 1996 
 Т = [год месяц день час минуты секунды]. 
Функция работает некорректно, если в текущий промежуток времени попадут границы месяца или года, что, однако, случается крайне редко и исправляется при повторе операции. Пример (вычисляется время, затрачиваемое на быстрое преобразование Фурье с 2048 точками): » х = rand(2048,l):t = clock; fft(x); etime(clock.t):etime (clock.t) ans = 0.0500 
 » tl = now, t2 = rem(now.l) tl = 7.3009e+005 t2 = 0.6455 
 » tic.surf(peaks(50));toc elapsed_time = 0.7600 
 » D=[728647,735730]:[N.S] = weekday(D) N = 2 1 S= Mon Sun Элементарные функции, пожалуй, наиболее известный класс математических функций. Поэтому, не останавливаясь подробно на их описании, представим набор данных функций, имеющийся в составе системы MATLAB. Функции, перечисленные ниже, сгруппированы по функциональному назначению. В тригонометрических функциях углы измеряются в радианах. Все функции могут использоваться в конструкции вида y=func(x), где func — имя функции. Обычно в такой форме задается информация о функции в системе MATLAB. Мы, однако, будем использовать для функций, возвращающих одиночный результат, более простую форму func(x). Форма [y,z,...]=func(x....) будет использоваться только в тех случаях, когда функция возвращает множественный результат. Алгебраические и арифметические функции В системе MATLAB определены следующие алгебраические и арифметические функции: 
 abs(-5) = 5 abs(3+4i) =5 » abs([l -2 1 3i 2+31]) ans = 1.0000 2.0000 1.0000 3.0000 3.6056 
 Примеры: » ехр([1 23]) ans = 2.7183 7.3891 20.0855 » exp(2+3i) ans = -7.3151 + 1.0427i 
 f = factor(221) f = 13 17 
 » А=[2 6 9]: » В=[2 3 3]: » gcd(A.B) ans = 2 3 3 » [G.C.D]=gcd(A.B) G = 2 3 3 C = 0 0 0 D= 1 1 1 
 » А=[1 354]; » В=[2 462]; » lcm(А.В) ans = 2 12 30 4 
 » Х=[1.2 3.34 5 2.3]; » log(X) ans= -0.1823 1.2060 1.6094 0.8329 
 Пример: » Х=[2 4.678 5;0.987 1 3]; » [F.E] = log2(Х) F = 0.5000 0.5847 0.6250 0.9870 0.5000 0.7500 Е = 2 3 3 0 1 2 
 Пример: » Х=[1.4 2.23 5.8 3]; » log10(X) ans = 0.1461 0.3483 0.7634 0.4771 
 Примеры: » М = mod(5.2) М = 1 » mod(10.4) ans = 2 
 Пример: » d=pow2(pi/4,2) d = 3.1416 
 Фурье. Если А не является скалярной величиной, то nextpowZ возвращает значение nextpow2(length(A)). Пример: » х=[2 678934567784324]; » length(x) ans = 16 » р = nextpow2(x) Р = 4 » х=4: » р = nextpow2(x) Р = 2 » Х=45; » р = nextpow2(x) Р = 6 
Функция primes(n) возвращает вектор-строку простых чисел, меньших или равных
n. Пример: » р = primes(25) Р = 2 3 5 7 11 13 17 19 23 
 Пример: » [g.j]=rat(pi.le-10) g= 312689 j = 99532 
 Пример: » А=[25 21.23 55.8 3]: » sqrt(A) ans = 5.0 4.6076 7.4699 1.7321 На рис. 8.1 представлены графики ряда распространенных алгебраических функций. Эти графики получены в результате исполнения следующего файла-сценария: syms x subplot(2,2.1).ezplot(x*2.[-5 5]).xlabel( " ).grid on subplot(2,2.2).ezplot(exp(x),[-2 2]),xlabel(").grid on subplot(2.2.3).ezplot(log(x).[0 5]),grid on subplot(2.2.4),ezplot(sqrt(x).[0 10]).grid on 
 Рис. 8.1. Графики ряда алгебраических функций Графики дают наглядное представление о поведении представленных на них функций. Обратите внимание на применение графической команды ezplot из пакета Symbolic Math ToolBox (она отличается от обычной команды ezplot MATLAB отсутствием заключения символьных переменных в'), команды syms, также входящей в пакет Symbolic Math .Toolbox и задающей символьную переменную х, и несколько необычное применение команды xlabel (''). Эта команда с аргументом в виде пустой строки снимает вывод обозначения горизонтальной оси на двух верхних графиках. Если этого не сделать, то символ «х» окажется наложенным на наименование функций нижних графиков, которое команда ezpl ot выводит над графиками автоматически. Тригонометрические и обратные им функции В системе MATLAB определены следующие тригонометрические и обратные тригонометрические функции. Функции вычисляются для каждого элемента массива. Входной массив допускает комплексные значения. Напоминаем, что все углы в функциях задаются в радианах. Э acos (X) — возвращает арккосинус для каждого элемента X. Для действительных значений X в области [-1, 1] acos(X) возвращает действительное значение из диапазона диапазона [0, р], для действительных значений X вне области [-1, 1] acos(X) возвращает комплексное число. Примеры: »Y = acos (0.5) 
1.0472 » acos([0.5 1 2]) ans = 
1.0472 0     0 + 1.31701 
 » Y=acot(0.l) у = 1.4711 
 » Y= acsc(3) 0.3398 
 » Y=asec(0.5) Y = 
0 + 1.31701 
 » Y= asin (0.278) Y = 0.2817 
 » Y=atan(l) Y = 0.7854 
 Пример: » atan2(l,2) ans = 0.4636 
 »Х=[123]; » cos(X) 
 ans = 
0.5403    
-0.4161    -0.9900 
 » Y = cot(2) Y = -0.4577 
 » Х-[2 4.678 5:0.987 1 3]; » Y - csc(X) 
 Y = 
1.0998    
-1.0006    -1.0428 
1.1985     1.1884    
7.0862 
 » X-[pi/10 pi/3 pi/5]; » sec(X) 
 ans = 1.0515 2.0000 1.2361 
 » X=[pi/2 pi/4 pi/6 pi]; » sin(X) ans = 1.0000 0.7071 0.5000 0.0000 
 
 Рис. 8.2. Графики четырех тригонометрических функций Пример: » Х=[0.08 0.06 1.09] X= 0.0800 0.0600 1.0900 » tan(X) ans= 0.802 0.0601 1.9171 Следующий файл-сценарий позволяет наблюдать графики четырех тригонометрических функций (рис. 8.2): syms xsubplot(2.2.1).ezplot(sin(x),[-5 5]).xlabel("),gnd on subplot(2.2.2),ezp"lot(tan(x).[-5 5]).xlabelC " ).grid on subplot(2,2,3),ezplot(asin(x),[-l l]).grid on subplot(2.2.4),ezplot(atan(x).[-5 5]),grid on Поскольку многие тригонометрические функции периодичны, появляется возможность формирования из них любопытных комбинаций, позволяющих создавать типовые тестовые сигналы, используемые при моделировании радиоэлектронных устройств. Следующий файл-сценарий строит графики для таких комбинаций, создающих из синусоиды три наиболее распространенных сигнала — прямоугольные, пилообразные и треугольные импульсы:[В пакете расширения Signal Processing Toolbox есть специальные функции для генерации таких сигналов — square и sawtooth. — Примеч. ред.] х=-10:0.01:10; subplot(2,2.1).plot(x.0.8*sin(x)) .x label('0.8*sin(x)') subplot(2.2,2).plot(x,0.8*sign(sin(x))) .x1abel('0.8*sgn(sin(x))') subplot(2.2.3),plot(x.atan(tan(x/2))) .xlabel('atan(tan(x/2))') subplot(2.2.4),plot(x,asin(sin(x))) .xlabel('asin(sin(x))') Соответствующие графики представлены на рис. 8.3. 
 Рис. 8.3. Графики синусоиды, прямоугольных, пилообразных и треугольных колебаний Дополнительный ряд графиков, полученных комбинациями элементарных функций, показан на рис. 8.4. Эти графики строятся следующим файлом-сценарием: х=-10:0.01:10; subplot(2.2.1).plot(x.sin(x).A3).x1abel('sin(xr3') subplot(2.2.2).plot(x,abs(s1n(x))) .xlabel('abs(sin(x))').axis([-10 10 -1 1]), subplot(2.2,3),plot(x,tan(cos(x))) .xlabel('tanCcos(x))') subplot(2.2.4).plot(x.csch(sec(x))),xlabeK'csch(sec(x))') 
 Рис. 8.4. Графики периодических сигналов без разрывов Эти графики неплохо моделируют сигналы, получаемые при выпрямлении синусоидального напряжения (или тока) и при прохождении синусоидальных сигналов через нелинейные цепи. Гиперболические и обратные им функции Наряду с тригонометрическими функциями в математических расчетах часто используются и гиперболические функции. Ниже приводится список таких функций, определенных в системе MATLAB. Функции вычисляются для каждого элемента массива. Входной массив допускает комплексные значения. Все углы в тригонометрических функциях измеряются в радианах. 
 »Y= acosh (0.7) Y = 0 + 0.7954i 
 »Y = acoth (0.1) Y= 0.1003 + 1.5708i 
 » Y = acsch(l) Y = 0.8814 
 » Y = asech(4) Y = 0 + 1.3181i 
 » Y = asinh (2.456) Y = 1.6308 
 » Х=[0.84 0.16 1.39]:. » atanh (X) 
 ans = 1.2212 0.1614 0.9065 + 1.5708i 
 » Х=[1 23]: 
 » Cosh(X) ans = 
1.5431     3.7622    
10.0677 
 » Y = coth(3.987) Y = 1.0007 
 » Х=[2 4.678 5:0.987 1 3]: » Y = csch(X) Y = 
0.2757     0.0186    
0.0135 
0.8656     0.8509    
0.0998 
 » X=[pi/2 pi/4 pi/6 pi]: » sech(X) ans = 0.3985 0.7549 0.8770 0.0863 
 
» X=[pi/8 pi/7 pi/5 pi/10]; » sinh(X) 
 ans = 0.4029 0.4640 0.6705 0.3194 
 » X=[pi/2 pi/4 pi/6 pi/10]; »tanh(X) 
 ans = 
0.9172     0.6558    
0.4805     0.3042 Следующий m-файл-сценарий строит графики ряда гиперболических функций: syms x subplot(2,2,l).ezplot(sinh(x).[-4 4]).xlabel(").grid on subplot(2,2.2).ezplot(cosh(x).[-4 4]).xlabel('').grid on subp1ot(2.2,3).ezplot(tanh(x).[-4 4]).grid on subplot(2.2.4).ezplot(sech(x).[-4 4]).grid on Нетрудно заметить, что гиперболические функции в отличие от тригонометрических не являются периодическими. Выбранные для графического представления функции дают примеры характерных нелинейностей. В другом файле использованы команды для построения графиков ряда обратных гиперболических функций: syms x subplot(2,2.1).ezplot(asinh(x).[-4 4]).xlabel(").grid on subplot(2.2.2),ezp1ot(acosh(x).[0 4]).xlabel(").grid on subplot(2,2.3),ezplot(atanh(x).[-l l]).grid on 
 subplot(2.2.4).ezplot(asech(x).[0 l]).grid on На этих графиках хорошо видны особенности данного класса функций. Такие функции, как обратный гиперболический синус и тангенс, «ценятся» за симметричный вид их графиков, дающий приближение к ряду типовых нелинейностей. Ряд особых функций служат для выполнения операций округления числовых данных и анализа их знака. 
 Примеры: » А=[1/3 2/3: 4.99 5.01] 
 А = 0.3333 0.6667 4.9900 5.0100 » fix(A) 
 ans = 0 0 4 5 
 Примеры: » А=[-1/3 2/3: 4.99 5.01] А = -0.33330.6667 4.99005.0100 » floor(А) ans = -1 0 4 5 
 Примеры: » а=-1.789; » ceil (а) ans = -1 » а=-1.789+1*3.908; » cei l(а) ans = -1.0000 + 4.0000i 
 Если операнды X и Y имеют одинаковый знак, функция rem(X, Y) возвращает тот же результат, что mod(X.Y). Однако (для положительных X и Y) rem(-x.y) = mod(-x,y)-y. Функция rem возвращает результат, находящийся между 0 и sign(X)*abs(Y). Если Y=0, функция rem возвращает NaN. Аргументы X и Y должны быть целыми числами. Из-за неточного представления в компьютере чисел с плавающей запятой использование вещественных (или комплексных) входных аргументов может привести к непредвиденным результатам. Пример: » Х=[25 21 23 55 3]; » Y=[4 8 23 6 4]; » rem(X.Y) ans= 15013 
 Пример: » Х=[5.675 21.6+4.897*1 2.654 55.8765]; » round(X) 
 ans = 
6.0000     22.0000 +5.0000i    
3.0000     56.0000 
 Пример: » Х=[-5 21 2 0 -3.7]: » sign(X) ans = -1 1 1 0 -1 Функции комплексного аргумента Для работы с комплексными числами и данными в MATLAB используются следующие функции: 
 Примеры: » Z=3+i*2 Z = 3.0000 + 2.00001 » theta = angle(Z) theta = 0.5880 » R = abs(Z) R = 3.6056 » Z =R.*exp(i*theta) Z = 3.0000 + 2.00001 
 » Z-[l+i, 3+2i, 2+3i]; » imag(Z) ans = 1 2 3 
 » Z=[1+i. 3+2i 2+3i]: » real(Z) ans = 1 3 2 
 » conj(2+31) ans= 2.0000 - 3.00001 В этом уроке мы научились: 
  | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||