Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> MATLAB

Строки в MATLAB: создание, манипуляции и функции

Создание символьной строки в MATLAB просто. Все переменные — массивы, строки — символьные массивы.

my_string = 'Tutorials Point'

Результат:

my_string = Tutorials Point

Проверка через whos:

Name         Size  Bytes  Class  Attributes
my_string    1x16  32     char

Символы можно преобразовать в числовые коды (ASCII/Unicode) и обратно:

my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string)   % 8-битные коды
char(str_ascii)                % обратно в символы
str_16bit = uint16(my_string)  % 16-битные коды
char(str_16bit)

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

Для хранения нескольких строк разной длины используют прямоугольные массивы (с дополнением пробелами).

Вертикальное объединение

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

Горизонтальное объединение

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

Объединение строк в клеточный массив

Клеточные массивы гибче — хранят строки разной длины без дополнения пробелами. Функция cellstr преобразует символьный массив в клеточный массив строк.

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

Результат:

{ 'Zara Ali'; 'Sr. Surgeon'; 'R N Tagore Cardiology Research Center' }

Строковые функции в MATLAB

ФункцияНазначение
Хранение текста, объединение массивов
blanksСтрока из пробелов
cellstrКлеточный массив строк из символьного массива
charПреобразование в символьный массив
iscellstrПроверка: клеточный массив строк?
ischarПроверка: символьный массив?
sprintfФорматирование данных в строку
strcatГоризонтальная конкатенация строк
strjoinОбъединение строк клеточного массива в одну
Поиск и замена подстрок
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'};
new_student = strrep(students(8), 'Reva', 'Poulomi')
first_names = strtok(students)

Результат:

new_student = { 'Poulomi Dutta' }
first_names = { 'Zara', 'Neha', 'Monica', 'Madhu', 'Madhu', 'Bhawna', 'Nuha', 'Reva', 'Sunaina', 'Sofia' }

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

str1 = 'This is test'; str2 = 'This is text';
if strcmp(str1, str2)
    sprintf('%s and %s are equal', str1, str2)
else
    sprintf('%s and %s are not equal', str1, str2)
end

Результат:

ans = This is test and This is text are not equal

MATLAB

  1. Освоение строк в Java: создание, методы и лучшие практики
  2. MATLAB: Комплексный обзор ведущей среды численных вычислений
  3. Переменные в MATLAB: Основы, примеры и работа с векторами/матрицами
  4. Основные команды MATLAB для эффективных вычислений
  5. Типы данных в MATLAB: Полное руководство с примерами
  6. Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
  7. Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
  8. MATLAB: Мастерство работы с многомерными и специальными массивами
  9. Оператор двоеточия в MATLAB: создание векторов и эффективная итерация
  10. Числа в MATLAB: типы, хранение и преобразование