Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные понятия среды MATLAB.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

4.3.2 Оператор цикла for

Часто при организации цикла требуется перебирать значение счетчика в заданном диапазоне значений с заданным шагом изменения. Для реализации таких задач существует оператор цикла for, который позволяет проще и нагляднее реализовывать цикл со счетчиком.

Синтаксис.

for <счетчик> = <начальное значение>:<шаг>:<конечное значение>

      <операторы цикла>

end

Примеры.

  1. Поиск максимального значения элемента в векторе

>> a = [3 6 5 3 6 9 5 3 1 0];

>> m = a(1);                    % текущее максимальное значение

>> for i=1:length(a)        % цикл от 1 до конца вектора с шагом 1 (по умолчанию)

    if m < a(i)                   % если a(i) > m,

         m = a(i);           % то m = a(i)

    end

end                          % конец цикла for

>> disp(m); % вывод максимального значения

  1. Смещения элементов вектора вправо, т.е. предпоследний элемент ставится на место последнего, следующий  – на место предпоследнего, и т.д. до первого элемента:

>> a = [3 6 7 2 8 9 5 3 1 0];

>> for i=length(a):-1:2              % цикл от 10 до 2 с шагом -1

     b(i)=a(i-1);            % смещаем элементы вектора а

end                          % конец цикла for

>> disp([a; b])

3 6 7 2 8 9 5 3 1 0

0 3 6 7 2 8 9 5 3 1

В некоторых задачах, где обычно используется цикл for, благодаря матричному представлению данных в среде MATLAB его использование не нужно. Таким примером может быть задача табулирования функции. Для ее реализации достаточно задать аргумент в виде диапазона и описать функцию:

>> x=0:0.5:5;

>> y=20*sin(x)./x;

>> disp([x;y])

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000

NaN 19.1770 16.8294 13.2999 9.0930 4.7878 0.9408 -2.0045 -3.7840 -4.3446 -3.8357

Результатом выполнения команд будет две строки. Где первая строка соответствует значениям х, а вторая – y.

4.4 Команды организации диалога

Для реализации возможности создания удобного интерфейса пользователя в среде MATLAB предусмотрены следующие команды:

  • disp(), sprintf() – вывод значений и текста на экран;

  • input(), sscanf() – ввод данных с клавиатуры;

  • keyboard, pause – приостановление выполнения программы;

  • menu() – создание меню пользователя.

Синтаксис.

    • disp(X) – выводит на экран значения переменной Х (Х может быть векторной величиной);

    • [s, errmsg] = sprintf(format, A, ...) – выводит значение массива А согласно заданому формату format в строковую переменную s и выполняет контроль, формируя сообщение об ошибке errmsg, если ошибки не произошло, то errmsg – пустой массив. Функция удобна для вывода значений с пояснительным текстом. (правила задания параметра format приведены в Приложении 1);

    • user_entry = input('prompt') – выводит символьную строку prompt на экран и считывает значение с клавиатуры в переменную user_entry ;

    • user_entry = input('prompt', 's') – выводит символьную строку prompt на экран и считывает значение с клавиатуры как символьную строку;

    • А = sscanf (s,format) – считывает данные из символьной переменной s, преобразует их согласно значению format и формируе основе этих данных матрицу А;

    • А = sscanf(s,format,size) – считывает количество данных, определенное параметром size, и преобразует их согласно строке format. Параметр size допуксае следующие значения

    • n – чтение n элементов в вектор-столбец;

    • inf – чтение элементов до конца символьной переменной и помещение их в вектор-столбец, содержащий такое же количество элементов, как и в строковой переменной;

    • [m.n] – считывает столько элементов, сколько требуется для заполнения матрицы размера тхп. Заполнение происходит по столбцам. Величина n может принимать значение Inf.

  • [A,count,errmsg,nextindex] = sscanf(...) – считывает данные из символьной переменной s, преобразует их согласно значению format и возвращает в матрицу А. Параметр count – возвращает число успешно считанных элементов; errmsg – возвращает сообщение об ошибки, если ошибка произошла, и пустую строку в противном случае; nextindex – выходной аргумент, который содержит число, на единицу большее, чем количество символов в сроке s;

  • keyboard – как правило используется в М-файлах. Останавливает выполнение программы и передает управление клавиатуре до введения команды return. Команда удобна для изменени значений переменных в процессе выполнения программы и для отладки;