列表大小不同

Different in List size

有人可以向我解释列表 大小 中的区别吗?一次是(x,1),一次是(x,)。我想我因此得到了一个 idexError。

谢谢

print(Annotation_Matrix)
   [array([[1],
   ..., 
   [7],
   [7],
   [7]], dtype=uint8)]

print(idx)
[array([ True,  True,  True, ..., False, False, False], dtype=bool)]

p.s。左边的是用

创建的
matlabfile.get(...)

正确的

in1d(...) 

大小为 (x,1) 的数组 A 是 x 行 1 列(二维)的矩阵,不同于大小为 (1,x) 的 A.T。它们具有相同的元素,但 'orientation' 不同。 大小为 (x,) 的数组 B 是 x 坐标(一维)的向量,没有任何方向(它不是行也不是列)。它只是一个元素列表。

在第一种情况下,可以使用 A[i,:] 访问与 A[i,0] 相同的元素(因为它只有一列)。 在后面,调用 B[i,:] 会导致错误,因为数组 B 只有一维。正确的调用是 B[i].

希望能帮到您解决问题。