python - 只有 size-1 的数组可以转换为 Python 标量 python
问题描述
我最近研究了python,在构建调幅信号时,会出现这个错误,据我了解,数据类型有问题,但我不明白需要具体修复什么。下面我给出了函数本身和它的工作代码
def signal_am(amp, km, fc, fs, period):
t = np.linspace(0, 1, 1000)
return (amp * (1 + km * np.cos(2*pi*fs*t)+2*sin(2*pi*f*t)) * np.cos(fc * t))
N = 1024
fs = 12
fc = 155
km = [0.5, 1, 1.7]
sig = [signal_am(amp=1.0, km=i, fc=fc, fs=fs, period=N) for i in km]
解决方案
在您的函数中,t
是一个 1d numpy 数组。并非您使用的所有函数似乎都接受数组输入,有些函数可能需要标量值(例如sin
)。改用numpy
ufuncs,它应该可以工作:
import numpy as np
def signal_am(amp, km, f, fc, fs, period):
t = np.linspace(0, 1, 1000)
return (amp * (1 + km * np.cos(2*np.pi*fs*t)+2*np.sin(2*np.pi*f*t)) * np.cos(fc * t))
N = 1024
fs = 12
fc = 155
km = [0.5, 1, 1.7]
sig = [signal_am(amp=1.0, km=i, f=1, fc=fc, fs=fs, period=N) for i in km]
推荐阅读
- amazon-s3 - 如何将文件从 AWS S3 传输到树莓派?
- mysql - MySQL 事件调度程序限制
- android - 如何在 Android 应用程序中使用 ffmpeg .so 文件
- mysql - 从 mySQL 数据库获得最高分
- python - Pandas:带条件的多索引
- appium - 如何在 Appium Android Test 中测试 OnClick
- sql-server - 存储 ENCRYPTBYPASSPHRASE() 的值
- c# - 使用 LINQ 和实体框架(核心)在一个 SQL 查询中从多个表中提取数据
- c# - c#如何在插入文本之前将光标设置在末尾
- reactjs - React 在重新加载时不加载页面