Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中正确设置数值积分?

我正在寻找整合这个表达:



但是我似乎在设置功能时遇到问题。正如 MATLAB解释中概述的那样,我已经定义了一个名为'NDfx.m'的单独函数,如下所示:

function [ y ] = NDfx(x) y = (1/sqrt(2*pi))*exp(-.5*x^2); % Error occurs here end 但是,当我在主函数中调用它时,在上面的注释行中出现错误。我的主要功能如下:

function[P] = NormalDistro(u,o2,x) delta = xu; dev = abs((delta)/o2); % Normalizes the parameters entered into function P_inner = quad(@NDfx,-dev,dev); % Integrates function NDfx from -dev to dev (error here) P_outer = 1 - P_inner; % Calculation of outer bounds of the integral if delta > 0 P = P_inner + (P_outer/2); elseif delta < 0 P = P_outer/2; elseif dev == 0 P = .5; end end 我得到的具体错误是:
==> mpower中的错误

输入必须是标量和方矩阵

回答:

您已经正确设置了所有内容以进行集成。错误在于函数本身的定义中。将变量用于要集成的函数时,请使用“。”。 (句点)在将^和*类的运算符应用于变量时,必须先于它们:

function [y] = NDfx(x) y = (1/sqrt(2*pi))*exp(-.5*(x.^2)); end

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:25


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.