|
|
Урок №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 В этом уроке мы научились:
|