В отличие от других языков, MATLAB может принимать матрицы в качестве одного аргумента;так что вы можете просто проверить, что входной аргумент является вектором длины 32:
function x = myfunction(arg)
if length(arg) ~= 32
error('Must supply 32 arguments!');
end
%# your code here
end
Если это переменное число аргументов, проверьте varargin
:
function x = myfunction(varargin)
Но для 32 аргументов рассмотрите возможность использования входной структуры :
function x = myfunction(argStruct)
if length(fieldnames(argStruct)) ~= 32
error('not enough arguments!');
end
Укажите аргументы в структуре, затем передайте структуру:
>> myArgs = struct();
>> myArgs.arg1 = 5;
>> myArgs.arg2 = 7;
>> %#(etc)
>> x = myfunction(myArgs);
Затем в функции вы можете либо напрямую вызывать argStruct.arg1
и т. Д .;или распакуйте его в 32 различных переменных внутри функции.Я бы дал полям описательные имена, чтобы вы не называли их arg1
и т. Д. Внутри своей функции.Для такого количества входных аргументов люди, использующие функцию, вероятно, не будут помнить порядок, в котором ваша функция требует, чтобы они передавали входные данные.Выполнение этого с помощью структуры позволяет пользователям передавать аргументы, не думая о том, в каком порядке определены эти входные данные.