English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Строки MATLAB

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

my_string = 'oldtoolbag.com'

MATLAB выполнит вышеуказанные инструкции и вернет следующий результат-

my_string = oldtoolbag.com

MATLAB рассматривает все переменные как массивы, а строки как массивы символов. Давайте используемwhosКоманда для проверки созданных выше переменных-

whos

MATLAB выполнит вышеуказанные инструкции и вернет следующий результат-

Name Size Size Bytes Class Attributes
my_string 1x16 32 char

Интересно, что вы можете использовать функции числового преобразования, напримерuint8илиuint16Чтобы преобразовать символы строки в их числовые коды.charФункция преобразует вектор целых чисел в строку-

Пример онлайн

Создайте скриптовый файл и введите следующий код-

my_string = 'w3codebox's com';
str_ascii = uint8(my_string) % 8-битные ascii значения
str_ascii = char(str_ascii)  
str_16bit = uint16(my_string) % 16-битные ascii значения
str_back_to_char = char(str_16bit)

Когда вы запускаете файл, он показывает следующий результат-

str_ascii =
  110 104 111 111 111 39 115 32 99 111 109
str_back_to_char = w3codebox's com
str_16bit =
  110 104 111 111 111 39 115 32 99 111 109
str_back_to_char = w3codebox's com

Прямоугольный массив символов

До сих пор мы обсуждали строки как одномерные массивы символов. Однако нам нужно хранить больше. Нам нужно хранить в программе больше текстовых данных нескольких измерений. Это достигается созданием прямоугольного массива символов.

Самый простой способ создания массива символов в виде прямоугольника - это вертикальное или горизонтальное соединение двух или более одномерных массивов символов по的需要。

Вы можете комбинировать строки вертикально двумя способами-

  • Использование оператора объединения строк MATLAB [] и разделением каждого ряда точками с запятой (;). Обратите внимание, что в этом методе каждое предложение должно содержать одинаковое количество символов. Для строк различной длины необходимо использовать пробельные символы для заполнения.

  • Использование функции char. Если строки различаются по длине, char заполняет более короткие строки следющими пробелами, чтобы сделать их длину одинаковой для каждой строки.

Пример

Создайте скриптовый файл и введите следующий код-

doc_profile = ['Zara Ali'...' ; ...
               'Sr. Surgeon'...' ; ...
               'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
                  'RN Tagore Cardiology Research Center')

Когда вы запускаете файл, он показывает следующий результат-

doc_profile =
Zara Ali                             
Sr. Surgeon                          
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali                            
Sr. Surgeon                         
RN Tagore Cardiology Research Center

Вы можете комбинировать строки горизонтально двумя способами-

  • Использование оператора объединения строк MATLAB[]И разделяет вводимые строки запятыми или пробелами. Этот метод сохраняет все следущие пробелы в вводимом массиве.

  • Использование функции объединения строк strcat удаляет из ввода следущие пробелы.

Пример

Создайте скриптовый файл и введите следующий код-

name = 'Zara Ali                                                                                             ';
position = 'Sr. Surgeon                                                                                         '; 
worksAt = 'R N Tagore Cardiology Research Center';
profile = [name, ' ', position, ' ', worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)

Когда вы запускаете файл, он показывает следующий результат-

profile = Zara Ali, Sr. Surgeon, R N Tagore Cardiology Research Center
profile = Zara Ali, Sr. Surgeon, R N Tagore Cardiology Research Center

Слияние строк в массив ячеек

Из предыдущего обсуждения明显可以看出, объединение строк различной длины может быть сложным, так как все строки в массиве должны иметь одинаковую длину. Мы используем пробелы в конце строк, чтобы сделать их длину одинаковой.

Но более эффективным способом комбинирования строк является преобразование массива результатов в массив ячеек.

MATLAB cell array может хранить данные различного размера и типа в массиве. Cell array предоставляет более гибкий способ хранения строк с переменной длиной.

cellstrФункция преобразует массив символов в массив ячеек строк.

Пример

Создайте скриптовый файл и введите следующий код-

name = 'Zara Ali                                                                                             ';
position = 'Sr. Surgeon                                                                                         '; 
worksAt = 'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
profile = cellstr(profile);
disp(profile)

Когда вы запускаете файл, он показывает следующий результат-

{                                                                               
   [1,1] = Zara Ali                                                              
   [2,1] = Sr. Surgeon                                                           
   [3,1] = R N Tagore Cardiology Research Center                                 
}

Функции строк MATLAB

MATLAB предоставляет множество функций строк, которые используются для создания, комбинирования, анализа, сравнения и операций со строками.

В таблице кратко介绍аны функции строк MATLAB-а-

ФункцияДействие
Функции для хранения текста в массиве символов, комбинирования массивов символов и т.д.
blanks

Создание строки из пробельных символов

cellstrСоздание массива ячеек строк из массива символов
char

Преобразование в массив символов (строку)

iscellstrОпределение того, является ли ввод строковым массивом ячеек
ischarОпределение того, является ли элемент массива字符ом
sprintfФорматирование данных в строку
strcatГоризонтальное соединение строк
strjoinСлияние строк в массиве в одну строку
Функция для распознавания частей строки, поиска и замены подстроки
ischarОпределение того, является ли элемент массива字符ом
isletterЭлемент массива как литера
isspaceЭлемент массива как пробельный символ
isstrpropОпределение того, принадлежит ли строка к заданной категории
sscanfЧтение форматированных данных из строки
strfindПоиск строки в другой строке
strrepПоиск и замена подстроки
strsplitРазделение строки по заданным делителем
strtokВыбранная часть строки
validatestringПроверка有效性 текстовой строки
symvarОпределение символов и переменных в выражении
regexpСовпадение регулярного выражения (различие между прописными и строчными буквами)
regexpi

Соответствие регулярному выражению (независимо от регистра)

regexprepЗаменить строку с использованием регулярного выражения
regexptranslate

Преобразование строки в регулярное выражение

Функции сравнения строк
strcmpСравнение строк (с учетом регистра)
strcmpi

Сравнение строк (независимо от регистра)

strncmpСравнение первых n символов строки (с учетом регистра)
strncmpi

Сравнение первых n символов строки (независимо от регистра)

Функции для изменения строки на верхний или нижний регистр, создания или удаления пробелов
deblankУдаление последующих пробелов из строки
strtrimУдаление前置ных и задних пробелов из строки
lowerПреобразование строки в нижний регистр
upperПреобразование строки в верхний регистр
strjustВыравнивание строкового массива

Пример

Следующие примеры объясняют некоторые из вышеупомянутых функций строк:

Форматирование строки

Создайте скриптовый файл и введите следующий код-

A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)

Когда вы запускаете файл, он показывает следующий результат-

ans = 3141.592654 
   3141.59 
   +3141.59 
      3141.59 
   000003141.59

Соединение строк

Создайте скриптовый файл и введите следующий код-

%Строковая单元格ная масса
str_array = {'red','blue','green', 'yellow', 'orange'};
%Объединение строк в单元格е в одну строку
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")

Когда вы запускаете файл, он показывает следующий результат-

str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange

Поиск и замена строки

Создайте скриптовый файл и введите следующий код-

students = {'Zara Ali', 'Neha Bhatnagar', ...}
            'Monica Malik', 'Madhu Gautam', ...
            'Madhu Sharma', 'Bhawna Sharma', ...
            'Nuha Ali', 'Reva Dutta', ...
            'Sunaina Ali', 'Sofia Kabir';
 
%strrep функция ищет и заменяет подстроку.
new_student = strrep(students(8), 'Reva', 'Poulomi')
%Отображение имен
first_names = strtok(students)

Когда вы запускаете файл, он показывает следующий результат-

new_student = 
{
   [1,1] = Poulomi Dutta
}
first_names = 
{
   [1,1] = Zara
   [1,2] = Neha
   [1,3] = Monica
   [1,4] = Madhu
   [1,5] = Madhu
   [1,6] = Bhawna
   [1,7] = Nuha
   [1,8] = Reva
   [1,9] = Sunaina
   [1,10] = Sofia
}

Сравнение строк

Создайте скриптовый файл и введите следующий код-

str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
   sprintf('%s и %s равны', str1, str2)
else
   sprintf('%s и %s не равны', str1, str2)
end

Когда вы запускаете файл, он показывает следующий результат-

str1 = This is test
str2 = This is text
ans = This is test и This is text не равны