1
我有一个3维数组。我只想将前两个维度分配给2D数组。matlab删除一个数组的第三维并将其分配给一个二维数组
阵列是
甲< 44,512,3 UINT8>
我需要删除3,并为其分配到一个新的数组B,使用B。将
乙< 44512 UINT8>
我不知道该怎么做。有人可以帮我吗?
我有一个3维数组。我只想将前两个维度分配给2D数组。matlab删除一个数组的第三维并将其分配给一个二维数组
阵列是
甲< 44,512,3 UINT8>
我需要删除3,并为其分配到一个新的数组B,使用B。将
乙< 44512 UINT8>
我不知道该怎么做。有人可以帮我吗?
你需要3D阵列的哪个2D切片?如果你想片#2,你这样做:
B = A(:,:,2);
我认为所有三片包含相同的数据集。但我如何确认呢? – user602774 2012-03-17 23:26:28
@ user602774:如果'all(all(A(:,:1)== A(:,:,2)))'计算结果为'true',则第一个和第二个切片是相同的。或者你可以从A中减去A的第一部分并测试是否全部为0:all(reshape(bsxfun(@ minus,A,A(:,:1))== 0,[], 1))' – Jonas 2012-03-17 23:49:49
我会做所有(所有(A(:,:1)== A(:,:,2))),然后all(all(A(:,:1)== A :,:,3)))如果两者都计算为1,那么意味着所有三列都是相同的 – user602774 2012-03-17 23:56:53