如何将下面的Matlab代码绘制成python?

wz8daaqr  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(146)

我的MATLAB代码:

x=1:28:9996;
#y_test is 1x178 double array
padding=nan(1,179);
plot(x,[padding,y_test])

我尝试在python中做同样的事情,但是它不起作用。为什么?

#python
x=np.arange(1,9996,28)
padding=np.full((179),np.nan)
plt.plot(x,[padding,y_test])

它显示此错误:

ValueError: x and y must have same first dimension, but have shapes (1, 357) and (2,)

而形状是y_test.shape, padding.shape,x.shape=>((1, 178), (1, 179), (1, 357))谢谢!

vc6uscn9

vc6uscn91#

[padding,y_test]在Python和MATLAB中的作用不同。在MATLAB中,它将两个数组沿着第一维连接在一起。在Python中,它创建一个包含这两个数组作为其两个元素的列表。
若要连接两个NumPy数组,请使用np.concatenatenp.stackcolumn_stack
在本例中,假设paddingy_test是一维数组(如代码所生成的),则需要执行np.concatenate((padding, y_test))。如果它们是形状为1xN的二维数组(如注解中所声明的),则需要指定要沿着第二维进行连接:np.concatenate((padding, y_test), axis=1) .

相关问题