我想绘制某个函数的轮廓,我的代码如下:
xlist = linspace(0, 100, 100)
ylist = linspace(0, 100, 200)
X, Y = meshgrid(xlist, ylist)
#print "X = " + str(X)
#print "Y = " + str(Y)
Z = power_at_each_point(X, Y)
#print "Z = " + str(Z)
figure()
CP2 = contourf(X, Y, Z)
colorbar(CP2)
title('Contour Plot')
xlabel('Room-x (m)')
ylabel('Room-y (m)')
show()
当我单独测试函数 power_at_each_point(X,Y) 时,我写道:
print power_at_each_point(50, 50)
输出是-80.9187477018
它基本上代表了房间内达到这一点的功率,它正常输出一个数字,但是当我在 meshgrid 命令之后调用它时,它返回一个错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我想获取房间 x-coord 和 y-coord 中点的每个坐标,并使用power_at_each_point
应该返回一个数字的方法计算此时达到的功率,我将在轮廓图中表示它。
我的猜测是 Z = power_at_each_point 的参数 (X,Y) 从只是数字变成了我不想要的数组,这就是导致错误的原因。如何让函数 Z = power_at_each_point(X,Y) 将 X 作为参数作为数字 ex :1 和 Y ex :2 并返回此时的功率值,以便我可以在轮廓图中表示它。
任何帮助,将不胜感激。