n 球坐标系到笛卡尔坐标系

2023-11-23

Is there any efficient way of changing between Cartesian coordinate system and n-spherical one? The transformation is as follows: enter image description here

以下是我的代码,但我想摆脱循环:

import numpy as np
import scipy.sparse

    def coord_transform_n(r,alpha):
        """alpha: the n-2 values between [0,\pi) and last one between [0,2\pi)
        """
        x=[]
        for i in range(alpha.shape[0]):
            x.append(r*np.prod(np.sin(alpha[0:i]))*np.cos(alpha[i]))
        return np.asarray(x)
    print coord_transform_n(1,np.asarray(np.asarray([1,2])))

您的原始代码可以通过记住中间代码来加速sin产品,即

def ct_dynamic(r, alpha):
    """alpha: the n-2 values between [0,\pi) and last one between [0,2\pi)
    """
    x = np.zeros(len(alpha) + 1)
    s = 1
    for e, a in enumerate(alpha):
        x[e] = s*np.cos(a)
        s *= np.sin(a)
    x[len(alpha)] = s
    return x*r

但速度仍然低于基于 numpy 的方法

def ct(r, arr):
    a = np.concatenate((np.array([2*np.pi]), arr))
    si = np.sin(a)
    si[0] = 1
    si = np.cumprod(si)
    co = np.cos(a)
    co = np.roll(co, -1)
    return si*co*r

>>> n = 10
>>> c = np.random.random_sample(n)*np.pi
>>> all(ct(1,c) == ct_dynamic(1,c))
True

>>> timeit.timeit('from __main__ import coord_transform_n as f, c; f(2.4,c)', number=10000)
2.213547945022583

>>> timeit.timeit('from __main__ import ct_dynamic as f, c; f(2.4,c)', number=10000)
0.9227950572967529

>>> timeit.timeit('from __main__ import ct as f, c; f(2.4,c)', number=10000)
0.5197498798370361
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

n 球坐标系到笛卡尔坐标系 的相关文章

随机推荐

  • fill.contour 与 ggplot2 + stat_contour

    我是 ggplot2 的新手 我正在尝试复制我使用创建的图表filled contour与ggplot2 下面是我的代码 require ggplot2 require reshape2 data prep scale lt 10 xs l
  • JPA + Hibernate + 自动提交

    有谁知道为什么当我在 JPA 配置文件中关闭自动提交时收到此警告 使用此设置
  • 如何在 R 中求解具有时间相关参数的 ODE 系统?

    我正在尝试通过 deSolve 求解这个 ODE 系统 dX dt X a Y X b c 和 dY dt Ya X Y b 对于时间 0 200 a 0 30 b 0 2 但 c 对于时间 50 70 为 1 否则为 0 我一直使用的代码
  • 使用浏览器同步与 Node.js 应用程序

    我有一个现有的节点应用程序 我的 Node 目录结构设置如下 node modules src views index html server js test gulpfile js package json 我可以成功启动我的应用程序no
  • BeautifulSoup 给了我 unicode+html 符号,而不是直接的 unicode。这是错误还是误解?

    我正在使用 BeautifulSoup 来抓取网站 该网站的页面在我的浏览器中呈现良好 国际乐施会的报告题为 越位 http www coopamerica org programs responsibleshopper company c
  • C# mvc 3 使用选择列表并在视图中选择值

    我正在开发 MVC3 Web 应用程序 我想要在从应用程序管理系统编辑 blo 时显示类别列表 在我的视图模型中 我为类别的选择列表项列表定义了以下属性
  • WebAPI 中获取 Microsoft.AspNet.WebApi.Cors 版本问题

    我已经安装了Microsoft AspNet WebApi Cors封装使用Install Package Microsoft AspNet WebApi Cors在我的 WebApi 项目 net Framework 4 5 2 中 现在
  • Python将逗号分隔的数字解析为int [重复]

    这个问题在这里已经有答案了 我将如何解析字符串1 000 000 一百万 转换成Python中的整数值 gt gt gt a 1 000 000 gt gt gt int a replace 1000000 gt gt gt
  • IE历史推送状态

    我有一个网页 用户可以通过 AJAX 显示条款和条件 而无需重新加载页面 这本身是没有问题的 但是 我也在努力推动一种历史状态 除了 IE 之外 这在大多数浏览器中都可以正常工作 由于某种莫名其妙的原因 内容是通过 AJAX 加载的 而且还
  • 在android中生成核心转储

    我正在开发一个 android 的应用程序 使用一些共享的 我编写并使用 ndk r5b 编译的库 该应用程序有效 y 和对库的调用也有效 但我检测到一些错误 分段错误 我需要调试它 但是 我不知道如何调试 来自 android 的本机代码
  • 阻止 app_offline.htm 在每次构建时创建和删除?

    我有一个包含 Visual Studio 2008 SP1 NET Framework 3 5 SP1 中的 2 个项目的解决方案 一个 ASP 网站 类库 dll 项目 我有从网站到类库的引用 因为类库是我的数据层 但无论如何 只有在这种
  • 工具栏在 Android 4.X 设备上不可见

    我刚刚将 android support appcompat lib 更新到 22 1 1 工具栏在 Lollipop 设备上可见 但在 4 X 设备上不可见 我什至尝试扩展 AppCompatActivity 但仍然没有运气 如果需要其他
  • 如何在适配器中启动Activity?

    我有一个带有自定义适配器的 ListActivity 并且在每个视图内 它可能有一些按钮 我需要在其中实现OnClickListener 我需要实施OnClickListener在适配器中 但是 我不知道如何调用该函数startActivi
  • rebar无法从github获取依赖

    我无法得到any使用 rebar 来自 github 的依赖 rebar config file sub dirs rel deps dir deps erl opts debug info deps thrift erl 0 5 0 gi
  • 在包含的模型上使用 limit()

    The Code 假设我有两个模型 名为Product and Image 它们通过以下方式链接Product hasMany Image and Image belongsTo Product 现在 假设我想获取所有带有第一张图片的产品
  • ASP.NET MVC4 多语言数据注释

    在标准应用程序中 我有以下内容 Required DisplayName Email Address public string EmailAddress get set 这反过来会自动为该表单字段生成英文标签 现在 如果我需要我的应用程序
  • VBA自动过滤器不等于

    Sub Macro1 Remove all except validated ActiveSheet Range A 1 H 5202 AutoFilter field 8 Criteria1 lt gt Validated Actives
  • 背景图像:url(“images/plaid.jpg”)无重复;不会出现

    我似乎无法将 plaid jpg 作为任何页面的背景 更不用说所有页面了 我尝试通过 body html home 的特定 id 来选择它 没有任何作用 该图像为 300 x 421 像素 我不需要它漂亮地出现 我只是想让它在一切背后出现
  • 如何使UIImagePickerController StatusBar lightContent风格?

    当我呈现 UIImagePickerController 时状态栏文本颜色仍然是黑色 如何制作这样的 只需三步 1 Add UINavigationControllerDelegate UIImagePickerControllerDele
  • n 球坐标系到笛卡尔坐标系

    Is there any efficient way of changing between Cartesian coordinate system and n spherical one The transformation is as