我正在将一些代码从MATLAB转换为python,并且正在努力获得一个函数,该函数以数组参数(作为参数)来使用Scipy进行集成。在

我已经将代码简化为一个在Scipy中产生相同错误的基本示例,而等效的MATLAB代码的功能与预期相同。在

我试图将长度为m的行向量参数参数参数和长度为N的列向量参数参数参数传递给被集成在另一个单独的积分参数上的函数,期望我的集成输出将具有MxN的形状。在

以下python代码会产生此错误:File "C:\Anaconda3\lib\site-packages\scipy\integrate\quadrature.py", line 196, in quadrature

if err < tol or err < rtol*abs(val):

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

^{pr2}$

等效的MATLAB代码(输出MxN形状的结果)是c = [1, 2];

r = transpose([2, 1]);

out = integral(@(p)intgd(p, r, c), -pi/2, pi/2, 'ArrayValued', true);

function intgd = intgd(p, r, c)

c_bcr = repmat(c, length(r), 1);

r_bcc = repmat(r, 1, length(c));

A = ones(length(r), length(c));

s = sin(r_bcc) - sin(p);

A(s ~= 0) = sin(c_bcr(s ~= 0).*s(s ~= 0))./(c_bcr(s ~= 0).*s(s ~= 0));

intgd = 1./fun(p, c).^2.*(A.^2);

end

function d = fun(p, c)

p1 = zeros(1, length(c));

mask = sqrt(pi./(2*c)) < 1;

p1(mask) = acos(sqrt(pi./(2*c(mask))));

d = zeros(1, length(c));

mask = abs(p) <= p1;

d(mask) = 1./(pi./(2*c(mask).^2) + cos(p));

mask = and(abs(p) > p1, abs(p) <= pi/2);

d(mask) = 1./(pi./(2*c(mask).^2) + ((cos(p1(mask)) - cos(p))./2));

end

上面的MATLAB输出out是[6.58727018139280, 0.963083280848789;

6.78600314283299, 1.05994693990888]

我不确定scipy.integrate.quadrature是如何处理通过它的对象的维度的,但想法是它应该产生相同的MxN输出。在

我知道numpy有它自己的内置广播,通常可以避免这里所示的显式广播的需要,但我不确定它如何处理m=N的数组,如本例中所示,因此我将其保持为显式。任何关于这个次要问题的建议也将是受欢迎的。在

matlab 函数 向量参数,Scipy integrate(quad,quadration,nquad)不能集成向量参数化函数?等效函数(MATLAB works)...相关推荐

  1. python中quad_python scipy integrate.quad用法及代码示例

    计算定积分. 使用Fortran库QUADPACK中的技术将func从a集成到b(可能是无限间隔). 参数: func:{function, scipy.LowLevelCallable}集成的Pyt ...

  2. python中eps是什么意思_如何在中使用参数epsabsscipy.integrate.quad在Python中?

    根据scipy手册,quad function要指定limit参数An upper bound on the number of subintervals used in the adaptive a ...

  3. 使用scipy.integrate模块中的quad和dblquad方法分别进行单重积分和多重积分

    一.单重积分     一般而言,使用求解微积分可以分为两大类:符号积分(即求出解析解)和数值积分(即求出数值解).在计算机的处理当中,数值解往往更有意义.     quadquadquad函数是 sc ...

  4. int main(int argc,char *argv[]),主函数的参数问题

    主函数的参数 在VC++中,我们有时候看到一些程序的主函数是带有参数的,虽然我们经常用到VC++但是对主函数的参数并不是很理解: int main(int argc,char *argv[]) 对于里 ...

  5. Python自定义函数的创建、调用和函数的参数详解

    这篇文章主要介绍了Python自定义函数的创建.调用和函数的参数.变量作用域等常见问题,需要的朋友可以参考下 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性 ...

  6. Swift 烧脑体操(二) - 函数的参数

    前言 \\ Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说 ...

  7. python中函数参数_Python函数的参数

    本章将介绍函数中参数的用法,更多内容请参考:Python学习指南 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道传递正确的参数,以及函数就返回 ...

  8. 函数局部变量和函数的参数在栈中的布局

    #include <stdio.h> #include <iostream>using namespace std; void func(int p1, int p2, int ...

  9. python函数的参数可以接收哪些类型的数据_python强势来袭-0015-函数中的参数-送礼开始...

    接上一讲,这节我们专门介绍python函数的参数处理 本节主要内容 函数的形式参数和实际参数 函数的参数定义规则 函数参数的默认值 函数的可变参数 函数的关键字参数 函数的命名关键字参数 1.3. 函 ...

最新文章

  1. 线程池中使用条件变量和信号量的性能比较
  2. Unity3D Instantiate慢的问题
  3. 重温2 在Activity中使用Menu
  4. 面试问题汇总 精选 分析 解答 职业规划 part 2
  5. 画春天的景色计算机教案,大班绘画春天来了教案
  6. 95-35-010-Topic-Topic的新建 源码解析
  7. Linux 101 Hacks __To be continued
  8. LVGL(2)Visual Studio模拟器使用
  9. 【语言处理与Python】1.3计算语言:简单的统计
  10. 樱花FRP(SAKURA FRP)远程桌面+rdpwrap绕过限制
  11. 使用Linux常见问题及其解决办法
  12. 固体物理 2022.9.27
  13. PS-给文字填充图片纹理
  14. PLC实验:LED 数码显示控制
  15. 什么是H5页面及又该如何制作?
  16. 关于QT源代码文件的归类
  17. 基于layui和ThinkPHP6开发的通用后台管理框架
  18. 四个小问题,简单解释一下 tomcat 和servlet 的关系
  19. pytorch_lesson13.2 模型拟合度概念介绍+模型欠拟合实例+单隐藏层激活函数性能比较+相同激活函数不同隐藏层数结果对比+神经网络结构选择策略
  20. 真科技向善!全网黑客,都在帮一个脑瘫女孩破解软件!

热门文章

  1. “BitPico称BCH98%的节点或位于同一服务器机架中”?
  2. docker搭建 LNMP 环境
  3. 通过 .gitlab-ci.yml配置任务-官方配置文件翻译
  4. 线性模型和非线性模型的区别
  5. Another MySQL daemon already running with the same unix socket的解决
  6. HDU2025 查找最大元素
  7. Odd Translation(一)
  8. RPM包制作之Spec文件详解
  9. Vue入坑——vue-router如何传递参数
  10. mysql查询日期内的所有日期代码