Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Disp( message );



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

VarX = input(' VarX =? ');

Функция 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 предусмотрен специальный тип данных - struct (структура).

Переменные типа struct имеют в своём составе несколько именованных полей. Создадим переменную MyStruct1, состоящую из двух полей: одного числового поля с именем data и одного текстового поля с именем name:

MyStruct1.name = '1st result';

MyStruct1.data = [ 1, 2.5; -7.8, 2.3 ];

Имя поля отделяется от имени переменной точкой. В данном фрагменте кода создаётся массив MyStruct1 типа struct размером 1 x 1.

Добавим в только что созданный массив MyStruct1 второй элемент:

MyStruct1(2).name = '2nd res-t';

MyStruct1(2).data = [ -5.7, -2.5; 7.1, 8.4 ];

Получился массив размера 1x2. В этом легко убедиться, если набрать в командном окне MATLABа имя переменной MyStruct1 и нажать клавишу Enter. В результате система покажет не содержимое этого массива, а его структуру:

Можно и далее добавлять элементы к этому одномерному массиву. Достаточно очевидно, что все элементы массива типа struct имеют одинаковое количество полей с фиксированными именами. Если явно не задать значение какого-либо поля, то ему автоматически будет присвоен пустой массив [].

Набор полей массива структур можно изменять динамически. Например, уже после того, как мы определили массив MyStruct1 типа struct размера 1x2 с двумя указанными выше полями (name и data), можно выполнить присваивание

MyStruct1(1).field = 'Third field';

после которого массив структур уже будет обладать тремя полями - name, data и field. Так как у второго элемента массива MyStruct1 поле field явно не задано, то оно равно пустому массиву:





Дата публикования: 2015-01-23; Прочитано: 244 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...