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

2024-05-14 03:59:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在簇的数量上有一个代码循环,并用不同的颜色绘制每个点,然后使用非度量缩放对这些点进行缩放,以在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

如果有什么需要补充的,请告诉我。我试图尽可能地说明这个问题


Tags: 代码forplotpltmarkercmapblackdelta
1条回答
网友
1楼 · 发布于 2024-05-14 03:59:35

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

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

相关问题 更多 >