我是一个蟒蛇新手;试图从matlab迁移。但是我在下面的代码中收到以下错误:ValueError:x和y必须具有相同的第一个维度
我似乎不明白为什么我的阵列都有101个元素:
import numpy as np
import scipy as sc
import pylab as py
import matplotlib as plt
k=1
y=[None]*101
#print(y)
for i in sc.arange(0.0,10,0.1):
y[k]=np.log(i)
#print(y[k])
k=k+1
j=sc.arange(0.0,10,0.1)
#y=np.array(y)
#j=np.array(j)
py.plot(y,j)
py.show()
答案 0 :(得分:0)
你的问题源于Matlab和numpy / scipy之间的一些根本区别。
首先,python中的数组从0开始索引,而不是Matlab中的1。因此,变量k
应该从0开始。
这里的另一个问题是你假设arange(0, 10, 0.1)
调用将产生与Matlab相同的101长度输出。如果你引用numpy.arange
的{{3}},你会发现,与Matlab不同,numpy.arange
不会在输出中包含高范围值。
值在半开区间[开始,停止] 内生成(换句话说,包括开始但不包括停止的区间)
我建议您查看documentation以更好地了解这两种语言之间的差异。