MATLAB Answers

0

How to use matlab function to fill or label the previous or next column cells with respect to certain column of of a matrix with a number (3)

Asked by M.S. Khan on 4 Aug 2019
Latest activity Commented on by M.S. Khan on 15 Aug 2019
As clear from figure, this is my M-matrix.
With respect to 2nd colum, in first colum, the 3rd row or 4th row i.e horizentally, i want to fill with 3 i.e. horizentally or diagonally.
similarly in 3rd column, i want to fill 3rd row or 4th rows same like above procedure.
% i want in each colum to have closing ie. startring 3 and then closing 3 i.e. the last one. Thanks for all coopeation. Warm regrads
question to ask.jpg

  0 Comments

Sign in to comment.

Tags

Products

1 Answer

Answer by Image Analyst
on 4 Aug 2019
 Accepted Answer

Try imdilate() -- it's a local max filter.
se = [0,0,0;1,1,1;1,1,1]
outputMatrix = imdilate(inputMatrix, se);

  6 Comments

This will work:
% Create sample data.
m = zeros(11, 3);
% Set a few locations (7) to 3
randomLocations = randperm(numel(m), 7);
m(randomLocations) = 3
% Now we have our matrix and we can begin.
[rows, columns] = size(m);
mOut = m; % Initialize
for row = 2 : rows
% Check column 1
if m(row-1, 2) == 3
mOut(row, 1) = 3;
end
% Check column 2
if m(row-1, 1) == 3 || m(row-1, 3) == 3
mOut(row, 2) = 3;
end
% Check column 3
if m(row-1, 2) == 3
mOut(row, 3) = 3;
end
end
mOut % Print to command window
Image Analyst, thanks for giving idea. i want this coding as dynamic. i dont apply or metion colums 1 or 2 or 3. i want to handle it as general rows and columns.
plz help me how to apply it on a matrix.
i applied it but its giving me problem ie. out of bounds.
could you plz help how to sort it out.
% Create sample data.
m = zeros(11, 3);
% Set a few locations (7) to 3
randomLocations = randperm(numel(m), 7);
m(randomLocations) = 3
% Now we have our matrix and we can begin.
[rows, colms] = size(m);
mOut = m; % Initialize
for row = 2 : rows
for colm = 1:colms
% Check column 1
if m(row-1, colm+1) == 3
mOut(row, colm) = 3
end
% Check column 2
if m(row-1, colm) == 3 || m(row-1, colm+2) == 3
mOut(row, colm+1) = 3
end
% Check column 3
if m(row-1, colm+1) == 3
mOut(row, colm+2) = 3
end
end
end
mOut % Print to command window
Hello Dear Image Analyst, could u plz reply. Thanks for all cooperation

Sign in to comment.