Traceback (most recent call last): File D:\Programming\envs\env_pytorch\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec exec(code, globals, locals) File d:\programming\pycharmprojects\p02_pivmix\mix\main.py:287 plt.pcolormesh(pX, pY, M ,vmin=0, vmax=math.ceil(max(M)), cmap='inferno') ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
时间: 2023-09-10 13:13:44 浏览: 129
pytorch数据预处理错误的解决
5星 · 资源好评率100%
这个报错是因为 `vmax` 参数需要传入一个标量,但是你传入了一个数组 `math.ceil(max(M))`。
你可以将 `math.ceil(max(M))` 直接赋值给一个变量,然后将这个变量传给 `vmax` 参数。例如:
```python
import numpy as np
import math
import matplotlib.pyplot as plt
M = np.random.rand(10, 10) * 10
max_M = math.ceil(np.max(M))
pX, pY = np.meshgrid(np.arange(0, 10), np.arange(0, 10))
plt.pcolormesh(pX, pY, M ,vmin=0, vmax=max_M, cmap='inferno')
plt.colorbar()
plt.title('Displacement (pixels)')
plt.axis('scaled')
plt.savefig(result_path +'/2-D Velocity Field Displacement.png', dpi=300, bbox_inches='tight')
plt.show()
```
在这个例子中,我们首先使用NumPy库生成了一个10x10的随机二维数组M。然后,我们使用`np.max()`函数找到了数组M中的最大值,并使用`math.ceil()`函数对其进行向上取整,并将结果赋值给`max_M`变量。在调用`plt.pcolormesh()`函数时,我们将`max_M`作为`vmax`参数的值。最后,我们添加了一些其他的绘图设置,并将图像保存到指定的路径中。
阅读全文