Function 在MATLAB中,如何方便地为函数提供多个参数?
我有一个MATLAB函数myfunv1、v2、v3、v4、v5、v6和一个30x6矩阵a。调用该函数的方法是将a的每一列作为单独的输入参数传递:Function 在MATLAB中,如何方便地为函数提供多个参数?,function,matlab,input,arguments,Function,Matlab,Input,Arguments,我有一个MATLAB函数myfunv1、v2、v3、v4、v5、v6和一个30x6矩阵a。调用该函数的方法是将a的每一列作为单独的输入参数传递: myfun(A(:,1),A(:,2),A(:,3),A(:,4),A(:,5),A(:,6)) 只是想知道是否有更好的方法可以做到这一点,而无需多次显式写出a:,*?您可以首先使用函数将a的每一列放置在单元格数组的单元格中,然后使用{:}语法将单元格数组内容作为 重写函数以接受两种约定: function [] = myfun(v1,v2,v3,v
myfun(A(:,1),A(:,2),A(:,3),A(:,4),A(:,5),A(:,6))
只是想知道是否有更好的方法可以做到这一点,而无需多次显式写出a:,*?您可以首先使用函数将a的每一列放置在单元格数组的单元格中,然后使用{:}语法将单元格数组内容作为
重写函数以接受两种约定:
function [] = myfun(v1,v2,v3,v4,v5,v6)
if nargin==1
v2 = v1(:,2);
v3 = v1(:,3);
v4 = v1(:,4);
v5 = v1(:,5);
v6 = v1(:,6);
v1 = v1(:,1);
end
%# use v1,v2,v3,v4,v5,v6
%# ...
end
现在,您可以同时以以下两种方式调用:
myfun(A(:,1),A(:,2),A(:,3),A(:,4),A(:,5),A(:,6))
myfun(A)
通常,您会进行更多验证,以测试参数的正确数量…为什么要这样传递?是你写的这个函数还是某种约束?
myfun(A(:,1),A(:,2),A(:,3),A(:,4),A(:,5),A(:,6))
myfun(A)