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