gpt4 book ai didi

matlab - 如何声明一个参数为数组的函数?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:58 27 4
gpt4 key购买 nike

我需要声明一个具有 32 个参数的函数,因此放置一个唯一参数会很方便:一个包含 32 个元素的数组。我没有找到这样做的语法,我已经尝试了一切,例如:函数 x=myfunction(str(32)) (等等...)但没有成功。

最佳答案

与其他语言不同,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 个参数,请考虑使用 an input structure :

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 等。对于那么多输入参数,使用该函数的人可能不记得您的函数要求他们将输入传递给的顺序。使用结构来执行此操作可以让用户传递参数,而无需考虑这些输入的定义顺序。

关于matlab - 如何声明一个参数为数组的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com