filling a internal value of a matrix

Hi I have the following matrix
I=
0 1 0 0
0 0 1 1
0 1 0 0
0 0 1 0
I want the following output:
0 1 0 0
0 1 1 1
0 1 1 0
0 0 1 0
Is there any easy way to do that,easily?
Thanks

 Accepted Answer

This function will help you: FINDSUBMAT. Here is an example:
I=[0 1 0 0
0 0 1 1
0 1 0 0
1 0 0 0
0 0 1 0
1 0 0 0
0 0 1 0];
idx = findsubmat(I,[1 0 1]'); % Available at the above link...
I(idx+1) = 1
I =
0 1 0 0
0 1 1 1
0 1 0 0
1 0 0 0
1 0 1 0
1 0 1 0
0 0 1 0

More Answers (1)

I(6)=1;
I(11)=1;
or
I([6 11])=1

3 Comments

What to do if I want to fill all those zeros with of the
form :
1
0
1
=
1
1
1
Please give an example of the desired output matrix.
I=
0 1 0 0
0 0 1 1
0 1 0 0
0 0 0 0
0 0 1 0
0 0 0 0
0 0 1 0
output:
0 1 0 0
0 1 1 1
0 1 0 0
0 0 0 0
0 0 1 0
0 0 1 0
0 0 1 0
This is an example, your previous code will work for
this simple matrix, but in case when my matrix is larger
and I dont know where this type of pattern
1
0
1
exists and then replace the middle 0 to 1 as above

Sign in to comment.

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!