我是靠谱客的博主 个性大树,最近开发中收集的这篇文章主要介绍MATLAB函数输入的参数过多和缺少参数输入问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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?

最后

以上就是个性大树为你收集整理的MATLAB函数输入的参数过多和缺少参数输入问题的全部内容,希望文章能够帮你解决MATLAB函数输入的参数过多和缺少参数输入问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部