exponenta event banner

strcmpi

Сравнение строк (без учета регистра)

Синтаксис

Описание

пример

tf = strcmpi(s1,s2) выдерживает сравнение s1 и s2, игнорируя любые различия в случае письма. Функция возвращает 1 (true), если они идентичны и 0 (false) в противном случае. Текст считается идентичным, если размер и содержание каждого из них одинаковы, кроме регистра. Результат возврата tf имеет тип данных logical.

Входными аргументами могут быть любые комбинации строковых массивов, символьных векторов и клеточных массивов символьных векторов.

Примеры

свернуть все

Сравните два различных вектора символов, игнорируя любые различия в буквенном регистре.

s1 = 'Yes';
s2 = 'No';
tf = strcmpi(s1,s2)
tf = logical
   0

strcmpi прибыль 0 потому что s1 и s2 не равны даже при игнорировании случая.

Сравните два одинаковых вектора символов.

s1 = 'Yes';
s2 = 'yes';
tf = strcmpi(s1,s2)
tf = logical
   1

strcmpi прибыль 1 потому что s1 и s2 равны при игнорировании регистра.

Поиск текста, соответствующего слову 'once' в массиве ячеек символьных векторов. Игнорировать регистр.

s1 = 'once';
s2 = {'Once','upon';
      'a','time'};
tf = strcmpi(s1,s2)
tf = 2x2 logical array

   1   0
   0   0

При игнорировании регистра возникает одно вхождение s1 в массиве s2, и это происходит в элементе s2(1,1).

Создайте два массива ячеек символьных векторов. Чтобы сравнить их при игнорировании обращения, используйте strcmpi функция.

s1 = {'Tinker', 'Tailor';
      '  Soldier', 'Spy'};
s2 = {'Tinker', 'Baker';
      'Soldier', 'SPY'};

tf = strcmpi(s1,s2)
tf = 2x2 logical array

   1   0
   0   1

tf(1,1) является 1 потому что 'Tinker' находится в первой ячейке обоих массивов. tf(2,2) является 1 потому что 'Spy' и 'SPY' отличаются только в случае. tf(2,1) является 0 потому что ' Soldier' в s1(2,1) имеет пробелы и 'Soldier' в s2(2,1) не делает.

Начиная с R2017a, можно создавать строки с помощью двойных кавычек. Сравнение двух строковых массивов, игнорирование регистра, использование strcmpi.

s1 = ["A","bc";
      "def","G"];
s2 = ["B","c";
      "DEF","G"];

tf = strcmpi(s1,s2)
tf = 2x2 logical array

   0   0
   1   1

Входные аргументы

свернуть все

Входной текст с каждым вводом в виде символьного вектора, символьного массива, массива ячеек символьных векторов или строкового массива. Порядок входных данных не влияет на результаты сравнения.

  • Если оба s1 и s2 - строковые массивы или массивы ячеек символьных векторов, s1 и s2 должен иметь одинаковый размер, если один из них не является скалярным.

  • Если оба s1 и s2 - массивы символов с несколькими строками, затем s1 и s2 может иметь разное количество строк.

  • При сравнении нескалярного массива ячеек из символьных векторов или строкового массива с многострочным символьным массивом массив ячеек или строковый массив должен быть вектором столбца с тем же числом строк, что и символьный массив.

Типы данных: char | cell | string

Выходные аргументы

свернуть все

Истинный или ложный результат, возвращенный как 1 или 0 типа данных logical.

  • Если каждый ввод является скаляром строки или символьным вектором, то tf является скаляром.

  • Если хотя бы один вход является строковым массивом или массивом ячеек символьных векторов, то tf - массив того же размера, что и входной массив.

  • Если один ввод представляет собой символьный массив с несколькими строками, а другой ввод представляет собой скалярную ячейку или строковый скаляр, то tf является nоколо-1 массив, где n - количество строк в символьном массиве.

  • Если оба ввода являются символьными массивами, tf является скаляром.

Совет

  • strcmpi функция предназначена для сравнения текста. Если используется для неподдерживаемого типа данных, strcmpi всегда возвращается 0.

  • Для сравнения текста с учетом регистра используйте strcmp вместо strcmpi.

  • Хотя strcmpi разделяет имя с функцией C, оно не соответствует соглашению языка C о возврате 0 когда текстовые входные данные совпадают.

Расширенные возможности

.
Представлен до R2006a