Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 在MATLAB中,如何方便地为函数提供多个参数?_Function_Matlab_Input_Arguments - Fatal编程技术网

Function 在MATLAB中,如何方便地为函数提供多个参数?

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

我有一个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,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)