num2str матлаб что это

Num2str матлаб что это

7. Массивы символов.

Во всех языках программирования, и MATLAB здесь не исключение, большую роль играет обработка текстовых данных. Для этой цели в системе MATLAB предусмотрен тип данных char ( то есть «символ» ). Текстовые данные, в том числе и одиночный символ, должны заключаться с обеих сторон апострофами:

c1 = ‘a’; c2=’abcd’; c3 = ‘Hello, World!’;

code = double( c1( 1 ) )

code=
9 7

показывает, что символу ‘a’ соответствует десятичное число 97.

Если после того, как переменная c3 получила текстовое значение ‘Hello, World!’, написать

c3 = 3.14;

то переменная c3 станет уже переменной типа double. Так как в сложных и громоздких M-функциях могут возникнуть ситуации, когда заранее неизвестен тип переменной в какой-либо момент времени исполнения функции, то с целью определения типа переменной следует применить функцию isa. Например, следующий вызов этой функции

isa( s3, ‘char’ )

вернёт истину ( единицу ), если переменная s3 является в этот момент строковой (символьной), и вернёт ложь ( нуль ) в противоположном случае.

По отношению к массивам символов справедливы также все операции, которые мы ранее рассмотрели для случая массивов типа double. Например, вместо группового присваивания c2 = ‘abcd’ можно организовать поэлементное присваивание с помощью операции индексации:

c2( 1 )=’a’; c2( 2 )=’b’; c2( 3 )=’c’; c2( 4 )=’d’;

или осуществить операцию конкатенации

В тесной связи с рассмотренной операцией конкатенации текстовых строк находится стандартная функция int2str, которая преобразует целые числовые значения в символы, отображающие эти целые числа. Например, вызов функции

res = int2str( 2 )

name = ‘function’; arg = 10.7;

for k = 1 : 10

res( k ) = feval( Name, arg );

и даже вычислить значения всех таких функций при значении аргумента arg. Это осуществляется с помощью стандартной функции системы MATLAB feval, которая принимает в качестве своего первого аргумента текстовую строку с именем M-функции, подлежащей вычислению. Второй и последующие аргументы этой функции служат для передачи в качестве аргументов вычисляемым функциям.

В вышеприведённом фрагменте результаты вычислений десяти функций запоминаются в массиве res.

Если требуется в одной переменной запомнить несколько имён функций ( это возможно в случае их одинаковой длины ) для последующего их исполнения с помощью feval, то можно сформировать текстовый массив размерности 2;

Names( 1, : ) = ‘function1’;

Names( 2, : ) = ‘function2’;

Часто текстовые строки используются для вывода в командное окно системы MATLAB для информирования пользователя о ходе выполнения M-функции. Это осуществляется с помощью функции disp, принимающей в качестве аргумента текстовую строку:

x = 7;

message = [ ‘ Variable x = ‘, int2str( x ) ];

disp( message );

Кроме того, в командное окно надо выводить сообщения, предупреждающие пользователя о необходимости ввода с клавиатуры значения переменной:

Функция input выводит в командное окно текст, являющийся её аргументом, после чего ожидает ввода значения с клавиатуры и нажатия клавиши Enter. Таким образом можно ввести с клавиатуры числовое значение и запомнить её значение в переменной VarX. Внутри строки-аргумента функции input может присутствовать специальный набор из двух символов /n, приводящий к показу сообщения на двух строках (часть сообщения после /n показывается на новой строке ).

Для ввода текстового значения, а не числового, требуется вызывать функцию input с двумя аргументами:

VarStr = input( ‘ StringVar = ‘, ‘s’ );

В результате выполнения этой функции на экране появляется надпись

StringVar =

после чего можно набирать необходимый текст с клавиатуры, заканчивая ввод нажатием клавиши Enter. Если нажать Enter, не введя с клавиатуры никакого текста, то переменная VarStr примет значение пустого массива. Желательно перед использованием этой переменной проверять её на этот случай функцией isempty( VarStr ), возвращающей единицу, когда аргумент является пустым массивом.

Читайте также:  Трипура сундари янтра для чего

Система MATLAB располагает также полным набором функций для «классической» обработки текстов. К таким функциям относятся функции findstr, blanks, deblank, num2str, str2num, strcat, strcmp, strcmpi, strrep, strtok.

Функции num2str, str2num производят преобразования из строк в действительные числа и обратно, функции blanks, deblank, strrep работают с пробелами и повторением символов, функция strcat осуществляет конкатенацию, функции strcmp и strcmpi сравнивают значения двух строк, функции findstr и strtok находят или выделяют в строках подстроки.

Например, в следующем фрагменте находится массив позиций вхождения слова Hello в текст, содержащийся в переменной vStr:

innerStr = ‘Hello’;

vStr=’Hello is the word. Hello is opposite to bye.’;

positions = findstr( vStr, innerStr );

В результате переменная ( массив ) positions принимает следующее значение:

positions =
1 20

В итоге функция findstr обнаружила два вхождения переменной innerStr в текст Vstr. Первое вхождение имеет место начиная с самого первого символа, второе вхождение имеет место на 20-ом символе ( включая пробелы, разумеется ).

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

Источник

Русские Блоги

Данные и преобразование типов данных в Matlab

В Matlab есть 15 основных типов данных, в основном целые числа, числа с плавающей запятой, логика, символ, дата и время, массив структур, массив ячеек и дескриптор функции.

Используйте whos для наблюдения за типом данных переменной

Плавающая точка: (одинарная; двойная)
Число с плавающей запятой: REALMAX (‘double’) и REALMAX (‘single’) возвращают максимальное значение для чисел с плавающей запятой двойной точности и одинарной точности соответственно, REALMIN (‘ double ‘) и REALMIN (‘ single ‘) возвращает минимальное значение с плавающей запятой двойной точности и с плавающей запятой одинарной точности соответственно.
Функции округления в Matlab: fix, floor, ceil, round.
исправить округление до нуля, fix(-1.3)=-1; fix(1.3)=1;
округление пола в сторону отрицательной бесконечности, floor(-1.3)=-2; floor(1.3)=1;
ceil округляет до положительной бесконечности, ceil(-1.3)=-1; ceil(1.3)=2;
округлить до ближайшего целого числа, round(-1.3)=-1;round(-1.52)=-2;
1.000 преобразуется в 1 с исправлением округления пола, но если оно округляет хвост, используйте пол.

Логика: (логическая)
Функция logic () преобразует числовые данные в логические.
В следующем примере показано применение логической индексации в матричных операциях. Для элементов больше 0,5 в матрице 5 * 5 устанавливается значение 0: A = rand(5); A(A>0.5)=0 ;

str = sprintf(formatSpec,A1. An)
[str,errmsg] = sprintf(formatSpec,A1. An)

eval(expression)
[output1. outputN] = eval(expression)

Источник

Для этого используют несколько способов.

1. Можно объединить в одну строку и поясняющий текст, и значение переменной. Но текстовые и числовые данные нельзя объединить без дополнительных действий, так как они являются данными разных типов. Требуются преобразования.

Для перевода числового значения переменной в символьную (текстовую) формуможно воспользоваться функцией num2str, которая осуществляет такое преобразование.

Например, запись: y = num2str(x) превратит числовое значение переменной хв текстовое представление. При этом формат представления числа определяется установленным режимом вывода чисел на экран (Numeric Format). По умолчанию – это формат short (4 цифры после десятичной точки).Причем, при преобразовании происходит округление числа до такой точности.

Эту функцию можно использовать самостоятельно или совмещать ее с функцией disp.

Например, число x = 15. 65789 при использовании команды y = num2str(x) преобразуется в строковый вид “15. 6579” и на экране будет выглядеть y = 15. 6579

Читайте также:  сегодня праздник день влюбленных

Можно получить сведения о переменной у

Name Size Bytes Class Attributes

Если в функции num2str указать второй параметр, num2str(x, n), то на экран при n=2 будет выведено число, состоящее из 2–х десятичных цифр, т.е. 16:

Name Size Bytes Class Attributes

>> strcat(‘Значение x=’, num2str(x))

Чаще всего эту функцию используют вместе с disp для формирования единой строки вывода.

2. Другим средством достижения того же результата является использование функции sprintf.

Конструкция имеет вид:

sprintf (‘ формат’, список переменных)

Функция формирует строку из числа, хранящегося в переменной x в соответствии с указанным форматом.

Эту функцию удобно использовать в команде disp в виде:
disp (sprintf (‘ формат’, список переменных)).

В результате получается текстовая строка y, состоящая из текста, указанного в апострофах, и значения числовой переменной x, в соответствии с указанным форматом.

Формат или строка преобразования имеет вид:

%[флаг][ширина поля вывода][точность] тип (спецификатор) формата

В квадратных скобках – необязательные параметры.

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

Точность – количество знаков после десятичной точки.

При необходимости в строке преобразования могут еще стоять специальные символы, например, перевод строки \n

Наиболее используемые спецификаторы формата:

d – для целых со знаком

f – для вещественных со знаком

Для нашего примера вывод на экран значения переменной x с поясняющим текстом в разных форматах:

Формат вывода вещественного числа с количеством позиций под число по умолчанию. Для нашего числа:

Формат вывода вещественного числа с количеством позиций под число – всего 4 и 1 позиция после десятичной точки:

При выводе происходит автоматическое округление по законам математики.

Формат вывода вещественного числа с количеством позиций под число – всего 6 и 3 позиции после десятичной точки:

Рассмотрим использование форматного вывода еще на одном простом примере.

Пусть даны вещественные: x=pi/4; y=sin(x); и целое z=42;

Хотим получить на экране выод значений этих переменных с поясняющим текстом в следующем виде:

Преобразуем z в целое (по умолчанию z будет типа double)

Name Size Bytes Class Attributes

Мы хотим вывести на экран значение x, под которое будет выделено 4 позиции и нам достаточно 2 позиций после десятичной точки (0,ХХ). А значение y хотим разместить в 5 позициях с тремя цифрами после десятичной точки (0.707). Под значение z определим количество позиций по умолчанию.

Наверное, пока такой способ не надо

Например, x1=1.24; x2=-3. 45; x3=5.76; x4=-8. 07;

Аналогично можно объединять несколько текстовых переменных, например: » x1=’ psi ‘; x2=’ fi ‘; x3=’ teta ‘; x4=’ w1 ‘; » disp([x1 x2 x3 x4]) psi fi teta w1

А теперь пример программы целиком.

Напишем скрипт-файл вычисления арифметического выражения, приведенного выше.

Res=

x=input(‘Введите значение x=’);

y=input(‘Введите значение y=’);

disp(sprintf(‘x=%4.2f; y=%5.3f; res=%10.3f;’,x,y,res))

Сохраним его с именем, например f1и выполним. Запустить файл на выполнение можно из пункта меню Debug, Run или, набрав в окне Commad Window имя файла f1

Источник

Convert Numeric Values to Text

This example shows how to convert numeric values to text and append them to larger pieces of text. For example, you might want to add a label or title to a plot, where the label includes a number that describes a characteristic of the plot.

Convert to Strings

Before R2016b, convert to character vectors using num2str .

To convert a number to a string that represents it, use the string function.

Читайте также:  У шиншиллы выпадает шерсть по бокам что делать

The string function converts a numeric array to a string array having the same size.

You can specify the format of the output text using the compose function, which accepts format specifiers for precision, field width, and exponential notation.

If the input is a numeric array, then compose returns a string array. Return a string array that represents numbers using exponential notation.

Add Numbers to Strings

Before R2016b, convert numbers to character vectors and concatenate characters in brackets, [] .

The simplest way to combine text and numbers is to use the plus operator ( + ). This operator automatically converts numeric values to strings when the other operands are strings.

For example, plot a sine wave. Calculate the frequency of the wave and add a string representing that value in the title of the plot.

Sometimes existing text is stored in character vectors or cell arrays of character vectors. However, the plus operator also automatically converts those types of data to strings when another operand is a string. To combine numeric values with those types of data, first convert the numeric values to strings, and then use plus to combine the text.

Character Codes

If your data contains integers that represent Unicode® values, use the char function to convert the values to the corresponding characters. The output is a character vector or array.

Before R2016b, use num2str to convert the numeric value to a character vector, and then concatenate.

Hexadecimal and Binary Values

For example, set a bit in a binary value. If you specify the binary value using a literal, then it is stored as an integer. After setting one of the bits, display the new binary value as text using the dec2bin function.

Источник

Num2str матлаб что это

Основные функции

blanks Сформировать строку пробелов
cellstr Преобразовать массив символов в массив ячеек для строк
char Сформировать массив символов
deblank Удалить пробелы в конце строки
double Преобразовать символы строки в числовые коды

Проверка строк

ischar Истинно, если это массив символов (строка)
iscellstr Истинно, если это массив ячеек для строк
isletter Истинно, если это символ алфавита
isspace Истинно, если это пробел

Операции над строками

strcat Горизонтальное объединение строк
strvcat Вертикальное объединение строк
strcmp Сравнить строки
strncmp Сравнить n символов строк
findstr Найти заданную строку в составе другой строки
strjust Выравнять массив символов
strmatch Найти все совпадения
strrep Заменить одну строку другой
strtok Найти часть строки, ограниченную разделителями
upper Перевести все символы строки в верхний регистр
lower Перевести все символы строки в нижний регистр

Преобразования строк

num2str Преобразование числа в строку
int2str Преобразование целого в строку
mat2str Преобразование матрицы в строку
str2mat Объединение строк в матрицу
str2num Преобразование строки в арифметическое выражение и его вычисление
sprintf Записать форматированные данные в виде строки
sscanf Прочитать строку с учетом формата

Преобразования систем счисления

hex2num Преобразовать шестнадцатеричное число в число удвоенной точности
hex2dec Преобразовать шестнадцатеричное число в десятичное число
dec2hex Преобразовать десятичное число в шестнадца­теричную число
bin2dec Преобразовать двоичную строку в десятичное число
dec2bin Преобразовать десятичное число в двоичную строку
base2dec Преобразовать B-строку в десятичное число
dec2base Преобразовать десятичное число в B-строку

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

Источник

Обучающий онлайн портал