首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:操作数无法与形状一起广播(400,) (2,)

ValueError:操作数无法与形状一起广播(400,) (2,)
EN

Stack Overflow用户
提问于 2015-03-19 20:45:45
回答 1查看 2.2K关注 0票数 0

由于某种原因,我在这个code...and上得到了一个模块对象不可调用的错误,我真的不明白为什么?

代码语言:javascript
复制
def func (t,a,x):
return
`plt.plot(t,(exp(a*t))*x(), label="lalala")` 

....and回溯

plt.plot(t,(exp(a*t))*x(), label="lalala") TypeError: 'numpy.ndarray' object is not callable

将x()更改为x之后

代码语言:javascript
复制
x=np.array([1,100])
t=np.linspace(1,10,400)
def func (t,a,x):
    return plt.plot(t,(exp(a*t))*x, label="lalala")

现在我明白了:

ValueError:操作数无法与形状一起广播(400,) (2,)

目标是使用函数绘制图形:

随时间变化的exp(a*t)*x t...=>y= exp(a*t)*x

Y轴上,t是x轴。

a是孔时间常数,t(1,10,400)x(1,100)会发生变化。

EN

回答 1

Stack Overflow用户

发布于 2015-03-19 22:12:11

很难确定你想要的是什么,但从你的编辑来看,你似乎有两个x的值,你想要在时间范围t=np.linspace(1,10,400)上绘制y= x.exp(a.t)的图形。在这种情况下:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
a = 2
x = np.array([1,100])
t=np.linspace(1,10,400)
def func(t, a, z):
    return z * np.exp(a * t)

plt.plot(t,func(t, a, x[0]))
plt.plot(t,func(t, a, x[1]))

出现这个错误是因为x是一个包含两个值的数组,而NumPy (在没有帮助的情况下)不知道如何根据时间数组“广播”这两个值。如果希望func生成一个形状为(2,400)的数组来响应输入x,请使用np.newaxisx数组中创建缺少的第二个轴:

代码语言:javascript
复制
func(t, a, x[:,np.newaxis])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29144973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档