Sequences for a 3D matrix

1 Ansicht (letzte 30 Tage)
Jonas Damsbo
Jonas Damsbo am 14 Jan. 2019
Bearbeitet: Matt J am 14 Jan. 2019
It is possible to find sequences over the 3rd dimension for each element in Matlab? Lets say I have these matrix 3x3x5
1 1 0
A(:,:,1) = 0 0 1
1 1 1
1 1 0
A(:,:,2) = 0 0 1
1 0 1
0 0 0
A(:,:,3) = 1 1 0
0 0 0
1 0 0
A(:,:,4) = 1 0 1
1 1 1
1 1 1
A(:,:,5) = 0 0 1
0 1 0
Now I want to finde sequneces lets 1's two time in a row over the 3rd dimension, so I get the result:
2 1 0
result = 1 0 2
1 1 1
Antway to do that?

Antworten (2)

Matt J
Matt J am 14 Jan. 2019
Bearbeitet: Matt J am 14 Jan. 2019
k=ones(1,1,2)/2;
result = sum( convn(A,k,'valid')>.999 ,3 );
  2 Kommentare
Jonas Damsbo
Jonas Damsbo am 14 Jan. 2019
Where are you putting the value in the sum you want to find the sequence with?
Matt J
Matt J am 14 Jan. 2019
Bearbeitet: Matt J am 14 Jan. 2019
In general, it would be,
k=ones(1,1,N)/N;

Melden Sie sich an, um zu kommentieren.


Andrei Bobrov
Andrei Bobrov am 14 Jan. 2019
Bearbeitet: Andrei Bobrov am 14 Jan. 2019
k = reshape([1,1,0],1,1,[]);
result = sum(convn(A,k,'same')==2,3);
  1 Kommentar
Jonas Damsbo
Jonas Damsbo am 14 Jan. 2019
If now the value I want to find a sequnece for must be >10. How did I do that?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by