переменная s = ’Управление системой’
Функция eval используется для применения текстовой строки как оператора или выражения. Например программа для загрузки десяти пронумерованных последовательно файлов данных имеет вид:
fname='mydate';
for i=1:10
eval(['load',fname,int2str(i)]
end
Текстовое макросредство особенно удобно для передачи имени функции в m-файлы-функции и определения новых команд и операций (см. Приложение).
§6. Файлы-функции.
Если первая строка m-файла содержит слово function, то этот файл является функцией. Функции используются для расширения возможностей пакета MatLab. Переменные, которые задаются и используются внутри файла, определяются как локальные и не действуют глобально в рабочей памяти.
function y=func345(x)
%Пример - расчет среднего значения элементов вектора
%Входной параметр - вектор, выходной - среднее значение
[m,n]=size(x);
if m==1 m=n;
end
y=sum(x)/m;
Теперь можно использовать эту функции, как и другие (стандартные) функции пакета (функция пользователя должна находится в рабочем каталоге). Если z=1:99, то набрав func345(z), получим ans=50.
Первые несколько строк, начинающиеся % могут быть просмотрены командой help. Команда help func345 выводит на командный экран две строки:
%Пример - расчет среднего значения элементов вектора
%Входной параметр - вектор, выходной - среднее значение
§7. Управление вычислениями.
Для управления вычислениями в пакете MatLab используются операторы цикла и оператор условий.
Цикл for.
Цикл for повторяет группу операторов фиксированное количество раз, например:
for i=1:n, x(i)=0, end, если n<1, то конструкция допустима, но команда выполнена не будет. Если x уже не существует или имеет меньше n элементов, то дополнительное пространство будет выделено автоматически.
Циклы могут быть вложенными (для каждого for обязательно должен быть свой оператор end):
for i=1:m
for j=1:n
A(i,j)=1/(i+j-1);
end
end
A
Точка с запятой, заканчивающая внутреннюю команду A(i,j)=..., блокирует повторный вывод на дисплей значений элементов матрицы A в цикле.
Цикл for может действовать в обратном направлении:
t=[-1 0 1 3 5];
A(:,n)=ones(n,1);
for j=n-1:-1:1
A(:,j)=t.*A(:,j+1);
end
Шаг цикла может быть не целочисленным
for i=1.1:0.25:7.4
% Тело цикла
end
Так как пакет MatLab ориентирован на обработку матриц, необходимо избегать циклов там, где MatLab допускает альтернативные операции в векторной или матричной форме. Например программа
i=0;
for t=0:.001:1;
i=i+1;
y(i)=sin(t)
end
выполняется значительно медленнее, чем программа, представленная ниже:
t=0:0.001:1;
y=sin(t);
Цикл while.
Данная конструкция дает возможность повторять группу операторов нефиксированное число раз под контролем логического условия. В качестве примера представлена программа поиска наименьшего числа n, факториал которого n! является 100-значным числом:
n=1;
while prod(1:n)<1.e100, n=n+1; end
n
Операторы if и break.
Оператор if определяет условия выполнения вычислений. Общий вид данного оператора имеет вид:
if <условие> <операторы>
end
if <условие> <операторы>
elseif <условие> <операторы>
else <условие> <операторы>
end
Параметр <условие> может принимать одно из следующих значений:
< меньше;
<= меньше или равно;
> больше;
>= больше или равно;
== равно;
~= не равно.
Например:
if n<0
A=-n;
elsif n==0
A=1;
else
A=n
end
Оператор break дает возможность, при необходимости, выйти из цикла.
k=1;
for i=0:100
c=k*i^2; if c>100 break
end
end
§8. Другие операторы системы
Кроме перечисленных выше команд и функций в пакете используются следующие операторы.
Оператор input. Служит для ввода значений переменной с клавиатуры. Формат: переменная = input('сообщение')
Например:
V = input(‘ Введите скорость объекта ’)
Оператор disp. Используется для вывода сообщений в командное окно. Например:
disp('Расстояние S = ')
Оператор % - начало комментария.
Оператор pause - прерывание программы до нажатия любой клавиши.
Pause -
pause(3) - приостанов на 3 секунды.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.