2011-09-23 3 views
0

J'ai un tableau 3d. La première dim est x coordonnée du pixeltest sur 3ème dimension MATLAB

La 2ème dimension est la coordonnée y du pixel. La 3ème coordonnée est l'heure (ou peut être considérée comme le numéro d'image).

Je veux faire un test pour voir si un pixel est égal à zéro pour chaque image (le long de la 3ème dimension).

Comment écrirais-je ce test?

J'ai besoin de retourner les pixels qui sont toujours vrai !!!

+0

Je sais que cela pourrait impliquer la fonction ALL mais je ne suis pas sûr exactement sur la mise en œuvre – Timtam

+0

cela devrait être trivial pour quelqu'un qui sait coder, malheureusement je suis très inexpérimenté, j'apprécie votre temps – Timtam

+0

je vois un peu merdique des solutions telles que le test par rapport au cadre i + 1 et ensuite lancer en boucle ... mais il doit y avoir un moyen plus facile – Timtam

Répondre

1

Plutôt que all, vous pouvez utiliser any. Si je vous comprends bien, le code serait quelque chose comme cela pour un seul « pixel »

any(A(x,y,:)) 

A est la matrice 3d. Si le résultat est 1, alors le pixel donné a une valeur non nulle pour au moins une trame et 0 sinon.

+0

je l'ai eu à travailler en utilisant tous (X, dim) spécifiant dim comme le temps, cette solution est bonne cependant, même si j'ai trouvé la réponse avant que quelqu'un ait répondu ... (j'ai un peu oublié quelque chose d'évident) – Timtam

+0

Selon comment j'ai compris votre question, vous voulez "tester pour voir si un pixel est égal à zéro pour chaque image ". 'all (X, dim)' retournerait une matrice 2d dans laquelle, pour un pixel donné, '0' si le pixel a * au moins un * zéro. Pour obtenir une matrice avec '0' pour tous les pixels mis à zéro dans * chaque * image, vous devez utiliser' any (X, dim) '. Corrigez-moi si je vous ai mal compris. – triazotan

+0

vous avez raison, la chose est que pour mes fins, il était vraiment irrelivant si c'était vrai ou faux, j'étais juste intéressé par la capture de données à travers la dimension du temps, cependant, je vois que c'est très facile, je suis content de la solution merci – Timtam