Операторы отношения и логические операторы, а также соответствующие им команды позволяют проводить сравнения массивов одинакового размера. Результатом таких операций являются матрицы из нулей и единиц, причем единица означает истинность, а нуль – ложь. В табл. 1.6 отмечены операции отношения [1 - 3].
Таблица 1.6
Символ | Назначение | Имя функции |
< | Меньше | lt |
>= | Больше или равно | ge |
> | Больше | gt |
<= | Меньше или равно | le |
== | Равно | eq |
~= | Не равно | ne |
При попытке сравнения векторов или матриц различной размерности будет выведено сообщение об ошибке. При сравнении скаляра с матрицей сначала из скалярной переменной создаётся матрица нужного размера, и уже затем происходит сравнение. Операции (==, ~=) проводят сравнение вещественных и мнимых частей комплексных чисел, а операции (>, <, >=, <=) – только вещественных частей. Табл. 1.7 содержит функции элементарных логических операций.
Таблица 1.7
Символ | Назначение | Имя функции |
& | Логическое «и» | and |
| | Логическое «или» | or |
~ | Отрицание | not |
Исключающее «или» | xor |
Для логических операций ненулевое число отождествляется с единицей. Приведём примеры:
|
|
>> a=[1 2;3 4] % ввод матрицы
a =
1 2
3 4
>> b=2 % ввод скаляра
b = 2
>> c=a>b % результат сравнения - матрица
c =
0 0
1 1
>> a~=c % сравнение матриц - матрица
ans =
1 1
1 1
Логические операции можно записывать в виде функций. Так, последнее сравнение представимо в виде:
>> ne(a,c); % функция сравнения матриц.
Математическая среда Matlab. Примеры решения задач
Символы и текстовые строки в MATLAB вводятся при помощи простых кавычек [1 - 5]. Во внутреннем представлении символы даны целыми числами. Конвертировать массив символов в числовую матрицу позволяет команда double. Обратная операция совершается по команде char. Печатаемые символы из стандартного набора ASCII представлены числами от 32 до 255. Объединить текстовые строки можно, просто заключив их в квадратные скобки или при помощи команды strcat. Приведем примеры для данных команд. Вначале введем строку:
>> s = 'Привет ОмГТУ'
s = Привет ОмГТУ
Отметим, что для ввода русских букв следует выбрать в меню File/ Preferences/ Command Windows Font шрифт с русской кодировкой. Теперь найдём коды введённых символов:
>> v = double(s)
v =
Columns 1 through 8
1055 1088 1080 1074 1077 1090 32 1054
Columns 9 through 12
1084 1043 1058 1059
Объединим три строки:
>> h = [v + ' РТФ']
v = Привет ОмГТУ РТФ
Тот же результат получится, если вместо переменной v использовать строковую переменную s. В завершение попробуем применить команду strcat. Для перевода численных данных в строковые переменные имеется ряд команд преобразования. В табл. 2.1 приведены некоторые команды для этих и обратных операций, а полных список можно получить по команде help strfun.
|
|
Таблица 2.1
Имя команды | Действие |
num2str | Перевод числа в строку |
int2str | Перевод целого числа в строку |
mat2str | Преобразование матрицы в строку |
str2mat | Объединение строк в матрицу |
str2num | Преобразование строки в число |
strcat | Объединение строк |
Приведём пример:
>> z=1.2e3; strcat('z=',num2str(z))
ans = z=1200