python-3.x - 使用 Octave 与 Python 计算极对时的不同结果
问题描述
我正在尝试使用 Octave 5.1.10 和 Python 3.8 计算极对。
八度代码:
wc=1
n=4
s={n}
G=1
function poles (n, wc, G)
s={n}
for k =1:n
s{k}=wc*e^((j*(2*k+n-1)*pi)/(2*n))
endfor
endfunction
输出是:
s =
{
[1,1] = -0.38268 + 0.92388i
[1,2] = -0.92388 + 0.38268i
[1,3] = -0.92388 - 0.38268i
[1,4] = -0.38268 - 0.92388i
}
Python代码:
import numpy as np
import math
wc=1
n=4
G=1
def poles (n, wc, G):
import math
s=[] #contains the complex polpairs
e=math.e
pi=math.pi
for k in range(n):
s.append(wc*e**((1j*(2*k+n-1)*pi)/(2*n)))
return s
返回
s=[
(0.38268343236508984 + 0.9238795325112867j),
(-0.3826834323650897 + 0.9238795325112867j),
(-0.9238795325112867 + 0.3826834323650899j),
(-0.9238795325112868 - 0.38268343236508967j)]
有人可以向我解释为什么这两个输出不同吗?
解决方案
在您的八度循环中,k 取值从 1 到 4。
在你的 python 循环中, k 取值从 0 到 3
如果您希望在 python 循环中具有相同的行为,请更改
for k in range(4):
到
for k in range(1, 5):
推荐阅读
- vi - Vi 编辑器突然无法正常工作
- azure - Terraform 在后续的“应用”中删除 Azure 资源,而无需更改任何配置
- c++ - 无法将可执行文件与 CMake 静态链接
- ios - 在 Virtual Box 上运行的 macOS 上运行“颤振设备”后,未检测到我的物理 iOS 设备
- swagger - 在 APIRAY 蓝图和 Swagger 之间切换
- flutter - 使用 Cubit 状态管理 Flutter sqflite red 查询报错
- c# - 将 Emptyvalue 属性添加到 Query 参数以生成开放 api yaml
- javascript - 获取当前元素(JavaScript 中的内联函数)?
- python - Python 模块命令输出请求(在 Linux 上)
- flutter - 热重载时总是显示错误。请建议如何解决它?