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

MATLAB — Строки

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

Живая демонстрация
my_string = 'Tutorials Point'

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

my_string = Tutorials Point

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

whos

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

Name           Size            Bytes  Class    Attributes
my_string      1x16               32  char

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

Пример

Создайте файл сценария и введите в него следующий код —

Живая демонстрация
my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string)        % 8-bit ascii values
str_back_to_char= char(str_ascii)  
str_16bit = uint16(my_string)       % 16-bit ascii values
str_back_to_char = char(str_16bit)  

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

str_ascii =

   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116

str_back_to_char = Tutorial's Point
str_16bit =

   84  117  116  111  114  105   97  108   39  115   32   80  111  105  110  116

str_back_to_char = Tutorial's Point

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

Строки, которые мы обсуждали до сих пор, представляют собой одномерные массивы символов; однако нам нужно хранить больше, чем это. Нам нужно хранить больше размерных текстовых данных в нашей программе. Это достигается созданием прямоугольных массивов символов.

Простейший способ создания прямоугольного массива символов — это объединение двух или более одномерных массивов символов по вертикали или горизонтали по мере необходимости.

Вы можете комбинировать строки по вертикали одним из следующих способов —

Пример

Создайте файл сценария и введите в него следующий код —

Живая демонстрация
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

Вы можете комбинировать строки по горизонтали одним из следующих способов —

Пример

Создайте файл сценария и введите в него следующий код —

Живая демонстрация
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 может содержать различные размеры и типы данных в массиве. Массивы ячеек обеспечивают более гибкий способ хранения строк различной длины.

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 —

Функция Цель
Функции для хранения текста в массивах символов, объединения массивов символов и т. д.
пробелы Создать строку из пустых символов
cellstr Создать массив ячеек строк из массива символов
знак Преобразовать в массив символов (строку)
iscellstr Определить, является ли ввод массивом ячеек из строк
исчар Определить, является ли элемент массивом символов
sprintf Форматировать данные в строку
strcat Объединить строки по горизонтали
strjoin Объединить строки в массиве ячеек в одну строку
Функции для определения частей строк, поиска и замены подстрок
исчар Определить, является ли элемент массивом символов
островок Элементы массива, которые являются буквами алфавита
isspace Элементы массива, которые являются символами пробела
isstrprop Определить, относится ли строка к указанной категории
sscanf Чтение форматированных данных из строки
strfind Найти одну строку внутри другой
strrep Найти и заменить подстроку
strsplit Разделить строку по указанному разделителю
strtok Выбранные части строки
validatestring Проверить достоверность текстовой строки
симвар Определить символьные переменные в выражении
регулярное выражение Соответствие регулярному выражению (с учетом регистра)
регулярное выражение Соответствие регулярному выражению (без учета регистра)
регулярное выражение Заменить строку с помощью регулярного выражения
regexptranslate Перевести строку в регулярное выражение
Функции для сравнения строк
strcmp Сравнить строки (с учетом регистра)
strcmpi Сравнить строки (без учета регистра)
strncmp Сравнить первые n символов строк (с учетом регистра)
strncmpi Сравнить первые n символов строк (без учета регистра)
Функции для перевода строки в верхний или нижний регистр, создания или удаления пробелов
удалить пробел Удалить пробелы в конце строки
strtrim Удалить начальные и конечные пробелы из строки
ниже Преобразовать строку в нижний регистр
верхний Преобразовать строку в верхний регистр
стрюст Выровнять массив символов

Примеры

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

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

Создайте файл сценария и введите в него следующий код —

Живая демонстрация
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 

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

Создайте файл сценария и введите в него следующий код —

Живая демонстрация
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};

% Join strings in cell array into single string
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'};
 
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
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 and %s are equal', str1, str2)
else
   sprintf('%s and %s are not equal', str1, str2)
end

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

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

MATLAB

  1. Java-строки
  2. MATLAB — Обзор
  3. MATLAB — Переменные
  4. МАТЛАБ — Команды
  5. MATLAB — типы данных
  6. MATLAB — Операторы
  7. MATLAB — Матрица
  8. MATLAB — Массивы
  9. MATLAB — запись двоеточия
  10. МАТЛАБ — Числа