IndexError:在从matlab转换到python期间,索引2超出了大小为2的轴1



我在集群数量中有一个代码循环,并用不同的颜色绘制每个点,然后使用非度量缩放对这些点进行缩放以在2D中重新创建数据

mtalab中的代码为

cmap=colormap;
for i=1:10
ic=int8((i*64.)/(10*1.));
subplot(2,1,1)
hold on    
plot(rho(icl(i)),delta(icl(i)),'o','MarkerSize',8,'MarkerFaceColor',cmap(ic,:),'MarkerEdgeColor',cmap(ic,:));
end
subplot(2,1,2)
disp('Performing 2D nonclassical multidimensional scaling')
Y1 = mdscale(dist, 2, 'criterion','metricstress');
plot(Y1(:,1),Y1(:,2),'o','MarkerSize',2,'MarkerFaceColor','k','MarkerEdgeColor','k');

问题是我需要在python中执行所以我所做的是

for i in range(10):
fig.add_subplot(211)
print(rho[icl[i]],delta[icl[i]])
plt.scatter(rho[icl[i]],delta[icl[i]],marker='o')
plt.show()
fig.add_subplot(212)
print('Performing 2D nonclassical multidimensional scaling')
mds=manifold.MDS(max_iter=200, eps=1e-4, n_init=1, dissimilarity="precomputed")
Y1=mds.fit_transform(dist)
plt.plot(Y1[:,1],Y1[:,2],marker='o',markersize=2,markerfacecolor='black',markeredgecolor='black')

我删除了colormap,因为我在更多的搜索后得到了类的问题,我没有找到它的替代品。但是得到了这个错误

plt.plot(Y1[:,1],Y1[:,2],marker='o',markersize=2,markerfacecolor='black',markeredgecolor='black')
IndexError: index 2 is out of bounds for axis 1 with size 2
如果有什么需要补充的,请告诉我。我尽力说明这个问题

当将代码从Matlab转换为Python时,您需要记住Matlab数组索引从1开始,而在Python中它从0开始。在代码Y1[:,1],Y1[:,2]中,错误解释了您正在尝试索引超出数组大小。

plt.plot(Y1[:,0],Y1[:,1],marker='o',markersize=2,markerfacecolor='black',markeredgecolor='black')

最新更新