English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Создание строки в 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-а-
Функция | Действие |
---|---|
Функции для хранения текста в массиве символов, комбинирования массивов символов и т.д. | |
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 не равны