MATLAB Answers

doubt in the specific lines

1 view (last 30 days)
Rd on 23 Jul 2020
Commented: Rd on 23 Jul 2020
could you explain this line
mask = zeros(mask_h,mask_w);
mask(1:mask_h/2,:) = -1;
mask(mask_h/2 + 1:end,:) = 1;
img_filt = imfilter(img, mask,'replicate');
img_filt_up = img_filt(1:floor(img_h/2),:);
i cant understand what it means in general (,:,:,).


Sign in to comment.

Accepted Answer

Deepak Gupta
Deepak Gupta on 23 Jul 2020
':' means 'All'.
For example in your code you have created a mask of size 4*20 and initialized it with zeros. i.e.
mask = zeros(mask_h,mask_w);
In the next line you are assigning some perticular values to your mask. i.e.
mask(1:mask_h/2,:) = -1;
Here, 1: mask_h/2 = 1:2, because mask_h has value 4
and then ':' means 'All'. First index represents rows and second one column. So this line of code will assign value -1 to rows from 1 to 2 and in all columns. You can verify it by printing the mask value.
Same is for next line, where value of 1 is assigned for rest of the rows (3 to 4) in all columns.
If you don't want to assign values in all columns, then you will write something like:
mask(1:2, 1:10) = -1. Here value -1 will be assigned for rows 1 to 2 and columns 1 to 10 only.

  1 Comment

Rd on 23 Jul 2020
i understood. thank you so much for your explanation

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!