how can I use my function on 3*3 blocks?

hi I have a matrix ,I wanna use a function on 3*3 blocks. my function is: if in a block we watch just a one this block should return 1 but if all 9 elements of this block is zero this function should return 0 how can I do this in matlab?
...all the elements of this matrix is zero and one.

1 Kommentar

Give examples of the 3x3 blocks that return 1 and 0. I especially don't understand the grammar of "if in a block we watch just a one this block should return 1". Exactly what returns a 1? Does this:
[.2 .3 .4
.3. .5 .6
.6 .7 .9]
Does this?
[0 0 1
0 0 0
0 0 0]

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Mohammad Abouali
Mohammad Abouali am 10 Apr. 2015
Bearbeitet: Mohammad Abouali am 10 Apr. 2015

0 Stimmen

inputData=zeros(10,10);
inputData(randi(100,[15,1]))=1
inputData =
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 0
% this is what you are looking for
result=blockproc(inputData,[3,3],@(block) any(block.data(:)~=0))
result =
0 0 1 0
1 0 1 1
1 0 1 0
1 1 0 0
% and if you want both inputData and result matrix be the same size do this:
result=blockproc(inputData,[3,3],@(block) any(block.data(:)~=0)*ones(3,3))
result =
0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 1 1 1 0 0 0
1 1 1 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 1 1 1 1 1 1
1 1 1 0 0 0 1 1 1 0 0 0
1 1 1 0 0 0 1 1 1 0 0 0
1 1 1 0 0 0 1 1 1 0 0 0
1 1 1 1 1 1 0 0 0 0 0 0
1 1 1 1 1 1 0 0 0 0 0 0
1 1 1 1 1 1 0 0 0 0 0 0

2 Kommentare

jack nn
jack nn am 10 Apr. 2015
dear Mohammad Abouali ,I really appreciate you for your help.
Mohammad Abouali
Mohammad Abouali am 10 Apr. 2015
you are welcome

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Roger Stafford
Roger Stafford am 10 Apr. 2015

0 Stimmen

m = M(a:a+2,b:b+2); % This is your "block"
t = +any(m(:)~=0); % This is the returned value

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by