python - ValueError:x 和 y 必须具有相同的第一维,但具有形状 (512,) 和 (256,)
问题描述
我尝试使用 numpy 和 np.array 但失败了。它显示该错误:ValueError:x 和 y 必须具有相同的第一个维度,但具有形状 (512,) 和 (256,)。我不知道如何编辑该代码。请帮忙。
import math as mt
import matplotlib.pylab as plt
N = 512
t_min = 0 # [s]
t_max = 2 # [s]
frq = 2 # [Hz]
T_p = (t_max-t_min)/N
lst = range(0, N, 1)
t = []
sinus = []
rect = []
pila1 = []
pila2 = []
for i in lst:
t.extend([t_min + lst[i] * T_p])
sinus.extend([mt.sin(2 * mt.pi * frq * t[i])])
if sinus[i] > 0:
rect.extend([True])
else:
rect.extend([False])
pila1.extend([(t[i] % (1 / frq)) * frq])
pila2.extend([abs((t[i] % (1 / frq)) * frq - 0.5) * 2])
plt.figure(1)
plt.title('Plot')
plt.plot(t, sinus)
plt.plot(t, rect)
plt.plot(t, pila1)
plt.plot(t, pila2)
plt.xlabel('t')
plt.grid(True)
plt.show()
有完整的错误:
Traceback (most recent call last):
File "venv/zadanieA.py", line 32, in <module>
plt.plot(t, pila1)
File "venv\lib\site-packages\matplotlib\pyplot.py", line 2761, in plot
return gca().plot(
File "venv\lib\site-packages\matplotlib\axes\_axes.py", line 1646, in plot
lines = [*self._get_lines(*args, data=data, **kwargs)]
File "venv\lib\site-packages\matplotlib\axes\_base.py", line 216, in __call__
yield from self._plot_args(this, kwargs)
File "venv\lib\site-packages\matplotlib\axes\_base.py", line 342, in _plot_args
raise ValueError(f"x and y must have same first dimension, but "
ValueError: x and y must have same first dimension, but have shapes (512,) and (256,)
解决方案
好吧,您的t
列表包含的值与原始值一样多lst
,因为您在循环的每次迭代中添加一个项目 - 这给出了 512 个项目。但是,您的pila1
和pila2
列表仅针对 的正值进行扩展sinus[i]
,即。一半 - 所以它们只包含 256 个项目。要修复它,请将项目也添加到这些列表中(哦,请不要extend
在append
足够的地方使用)。
for i in lst:
t.append(t_min + lst[i] * T_p)
sinus.append(mt.sin(2 * mt.pi * frq * t[i]))
if sinus[i] > 0:
rect.append(True)
pila1.append(0) # or whatever value you deem "neutral"
pila2.append(0)
else:
rect.append(False)
pila1.append((t[i] % (1 / frq)) * frq)
pila2.append(abs((t[i] % (1 / frq)) * frq - 0.5) * 2)
推荐阅读
- eclipse - 如何创建适用于与模式匹配的所有脚本文件的 eclipse 运行配置?
- javascript - JQuery Datatable通过点击获取行数据
- python - 如何在 FastAPI 中将字典列表作为 Body 参数发送?
- kotlin - Kotlin 无法访问 Java 库的类,Java 可以访问
- javascript - 图像高度未设置为卡片的 100%
- c# - Linq 查询仅从表中的第一行中选择值
- c++ - 为什么这个浮点数的总和是四舍五入的?
- c# - 将项目拖动到它时向 Navigationviewitem 添加显示
- c# - WPF:覆盖按钮的 IsEnabled 评估
- angularjs - 如何使用量角器对动态渲染 Angular js 应用程序执行拖放操作?