Traceback (most recent call last): File "c:\Users\shay178461\Desktop\VScode\python\1st_try\graphtest\1.py", line 18, in <module> ax.plot_surface(X, Y, Z) File "C:\Users\shay178461\AppData\Roaming\Python\Python39\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1569, in plot_surface if Z.ndim != 2: AttributeError: 'matlab.double' object has no attribute 'ndim'
时间: 2023-06-30 22:22:30 浏览: 301
Python程序基础:Python中的异常.pptx
5星 · 资源好评率100%
这个错误是因为 `Z` 的类型是 `matlab.double`,而不是 `numpy.ndarray`。在 `plot_surface` 函数中,需要传入 `Z` 的数组类型为 `numpy.ndarray`,而不是 `matlab.double` 类型。解决方法是将 `Z` 转换为 `numpy.ndarray` 类型,可以使用 `np.array()` 函数将 `Z` 转换为 `numpy.ndarray` 类型,如下所示:
``` python
Z = np.array(eng.meshgrid(x, y, nargout=1))
```
这样就可以将 `Z` 转换为 `numpy.ndarray` 类型,然后再将其传入 `plot_surface` 函数中即可。
阅读全文