2011-09-23 130 views
0

我有一個3d數組。第一個dim是像素的x座標三維測試MATLAB

第二個維度是像素的y座標。 第三個座標是時間(或可能是幀號)。

我想做一個測試,看看每個幀(沿着第三維)是否有任何像素等於零。

我該如何寫這個測試?

我需要返回總是正確的像素!

+0

我知道這可能涉及到所有功能,但我不確定在執行 – Timtam

+0

這應該是微不足道的知道如何編碼的人,不幸的是我很缺乏經驗,我很欣賞你的時間 – Timtam

+0

我看到一些蹩腳解決方案,如測試vs i + 1幀,然後把它扔在一個循環中...但是必須有一個更簡單的方法 – Timtam

回答

1

而不是all您可以使用any。如果我理解正確的話,代碼會去像這樣的一個「像素」

any(A(x,y,:)) 

其中A是3D矩陣。如果結果是1,則給定像素對於至少一個幀確實具有非零值,否則爲0

+0

我得到它使用所有(X,暗淡)指定工作隨着時間的推移,這個解決方案雖然很好,但即使我在任何人回答之前找到了答案......(我有點不太明顯) – Timtam

+0

根據我如何理解您的問題,您想要「測試以查看是否有像素每個單幀等於零「。 'all(X,dim)'將返回2d矩陣,其中對於給定像素,如果像素具有*至少一個*零,那麼'0'。爲了得到一個所有像素都爲0的矩陣,每個幀都被清零,你應該使用'any(X,dim)'。如果我誤解了你,請糾正我。 – triazotan

+0

你是對的,那是因爲我的目的,它是真的或者是真的無關緊要,我只是對跨越時間維度捕獲數據感興趣,但是,我看到它很容易,我是滿意的解決方案謝謝 – Timtam