Sequences for a 3D matrix

1 view (last 30 days)
Jonas Damsbo
Jonas Damsbo on 14 Jan 2019
Edited: Matt J on 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?

Answers (2)

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

Sign in to comment.


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

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!