Составители:
67
Выделение остатка
строки
break
end
end
finish = i - 1;
token = string(start:finish);
if (nargout == 2)
remainder = string(finish+1:end);
end
Заметим, что порядок следования аргументов в выходном
списке имеет важное значение. Если при обращении к М-функции
выходной аргумент не указан, по умолчанию выводится первый аргу-
мент. Для формирования и вывода последующих аргументов требует-
ся организовать соответствующее обращение к М-функции.
Списки аргументов
Функции varargin и varargout позволяют передавать произ
-
вольное количество входных и выходных аргументов. Система
MATLAB упаковывает все заданные входные и выходные аргументы
в массив ячеек. Каждая ячейка может содержать любой тип и любое
количество данных.
Пример. Функция testvar допускает в качестве входных ар-
гументов любое количество векторов из двух элементов и выводит на
экран линии, их соединяющие.
function testvar(varargin)
for i = 1:length(varargin)
x(i) = varargin{i}(1);
y(i) = varargin{i}(2);
end
xmin = min(0, min(x));
ymin = min(0, min(y));
axis([xmin fix(max(x))+3 ymin fix(max(y))+3])
plot(x,y)
Таким образом, функция testvar может работать с входными списка-
ми разной длины.
Пример:
testvar([2 3], [1 5], [4 8], [6 5], [4 2], [2 3])
testvar([-1 0], [3 -5], [4 2], [1 1])
Формирование входного массива varargin. Поскольку спи-
сок varargin хранит входные аргументы в массиве ячеек, то необходи-
мо использовать индексы ячеек для извлечения данных. Индекс ячей-
ки состоит из двух компонентов:
Выделение остатка break
строки end
end
finish = i - 1;
token = string(start:finish);
if (nargout == 2)
remainder = string(finish+1:end);
end
Заметим, что порядок следования аргументов в выходном
списке имеет важное значение. Если при обращении к М-функции
выходной аргумент не указан, по умолчанию выводится первый аргу-
мент. Для формирования и вывода последующих аргументов требует-
ся организовать соответствующее обращение к М-функции.
Списки аргументов
Функции varargin и varargout позволяют передавать произ-
вольное количество входных и выходных аргументов. Система
MATLAB упаковывает все заданные входные и выходные аргументы
в массив ячеек. Каждая ячейка может содержать любой тип и любое
количество данных.
Пример. Функция testvar допускает в качестве входных ар-
гументов любое количество векторов из двух элементов и выводит на
экран линии, их соединяющие.
function testvar(varargin)
for i = 1:length(varargin)
x(i) = varargin{i}(1);
y(i) = varargin{i}(2);
end
xmin = min(0, min(x));
ymin = min(0, min(y));
axis([xmin fix(max(x))+3 ymin fix(max(y))+3])
plot(x,y)
Таким образом, функция testvar может работать с входными списка-
ми разной длины.
Пример:
testvar([2 3], [1 5], [4 8], [6 5], [4 2], [2 3])
testvar([-1 0], [3 -5], [4 2], [1 1])
Формирование входного массива varargin. Поскольку спи-
сок varargin хранит входные аргументы в массиве ячеек, то необходи-
мо использовать индексы ячеек для извлечения данных. Индекс ячей-
ки состоит из двух компонентов:
67
Страницы
- « первая
- ‹ предыдущая
- …
- 67
- 68
- 69
- 70
- 71
- …
- следующая ›
- последняя »
