MATLAB函数输入的参数过多和缺少参数输入问题 您所在的位置:网站首页 excel函数输入太少个参数会怎么样 MATLAB函数输入的参数过多和缺少参数输入问题

MATLAB函数输入的参数过多和缺少参数输入问题

2024-06-29 17:34| 来源: 网络整理| 查看: 265

MATLAB函数输入的参数过多和缺少参数输入

MATLAB的一些函数,诸如ode45,ode15s,bvp4c等函数,部分输入需要为函数句柄,即@fun的形式,但是经常会出现“参数输入过多”或者“参数输入不足的问题”,主要原因是在于MATLAB自带的函数传递参数机制和规定的问题。

如果在函数输入较为简单的情况下,函数只有一个输入,为function y = fun(x)的形式,此时,可以直接写为@fun的形式,不会报错。 但是有些情况下,调用的函数(即前文提到的函数句柄)输入量较多,如下形式function y = fun(t,x,a,b),此时被调用不能写为@fun的形式,否则会报错,因为fun函数需要的参数没有输入。此时有两种方式解决此问题,第一种是将函数句柄写为@(t,x) fun(t,x,a,b)的形式,表明t,x是不用输入的参数;第二种是写为MATLABFun(@fun,a,b)的形式,来将参数a,b传入函数fun中。

第一种方式称为匿名函数(anonymous functions)方法,第二种方式称为通过尾参数(trailing arguments)传递参数的方式。建议使用第一种方式,因为有一些较新的函数(比如说bvp5c)不支持使用尾参数传递的形式。

参考自MATLAB社区问答

When using ODE45 (or similar functions), what is the benefit of using anonymous functions over passing additional parameters as trailing arguments?



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有