Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
Matlab 四元函数在循环中工作而不调用文件_Matlab_Loops_Integration_Quad - Fatal编程技术网

Matlab 四元函数在循环中工作而不调用文件

Matlab 四元函数在循环中工作而不调用文件,matlab,loops,integration,quad,Matlab,Loops,Integration,Quad,我需要使用quad方法来集成到一个循环中。我无法创建外部文件并调用它,因为积分方程中的变量会随着循环不断变化,所以我剪切循环以使其变得简单。它给了我一个四元法行的错误-不知道如何修复它-准确地说是KrInitialIntegratedPart 我收到的错误消息如下: 使用内联/subsref时出错(第13行) 没有足够的输入来内联函数 四元组错误(第68行) y=f(x,varargin{:}) newproj4中的错误(第39行) KrInitialIntegratedPart=quad(‘(

我需要使用quad方法来集成到一个循环中。我无法创建外部文件并调用它,因为积分方程中的变量会随着循环不断变化,所以我剪切循环以使其变得简单。它给了我一个四元法行的错误-不知道如何修复它-准确地说是KrInitialIntegratedPart 我收到的错误消息如下:

使用内联/subsref时出错(第13行) 没有足够的输入来内联函数

四元组错误(第68行) y=f(x,varargin{:})

newproj4中的错误(第39行) KrInitialIntegratedPart=quad(‘(sin(x))(exp(-aininitial/aininitial))(db)’,0, (铁)


文件是指定义要集成的功能的单独M文件吗?这是使用
quad
和正交积分函数的老式方法。你不应该传递字符串,而应该传递。假设
x
是积分变量,您可以使用:

KrInitialIntegratedPart = quad(@(x)sin(x)*exp(-AInitial/aInitial)*db, 0, fe);
参数
aininitial
aininitial
db
将由它们在代码中的当前值确定。(此外,不需要使用太多的括号,这会使阅读代码更加困难。)

如果确实在单独的M文件或子函数中编写了集成函数,则仍应使用函数句柄。在这种情况下,您可以通过创建如下所示的

KrInitialIntegratedPart = quad(@(x)MyFunName(x, AInitial, aInitial,db), 0, fe);

根据您使用的Matlab版本,您可以尝试替代(或者如果您没有该版本)。

发布了错误消息
KrInitialIntegratedPart = quad(@(x)MyFunName(x, AInitial, aInitial,db), 0, fe);