What is the use of repmat in the following program?

1 view (last 30 days)
What is the use of repmat in the following program?
i=I;
[ir ic]=size(I);
if ir ~=512 && ic~=512
I=repmat(I,[1 2]);
end

Answers (1)

Jan
Jan on 15 Aug 2013
Edited: Jan on 15 Aug 2013
If none of the dimensions of I equal 512 (for some reason) it is repeated and the copied matrix is added horizontally to I.
i.e. the following should produce the same output
if ~any( size(I)==512 )
I=horzcat(I,I);
end
  2 Comments
Pooja
Pooja on 15 Aug 2013
By doing this will it affect the input image?Any data loss?
Jan
Jan on 15 Aug 2013
As I said, the matrix I (or image if you will) will be duplicated and the results concatenated if none of the input dimensions equal "512". In that case, the code does affect the image - you end up with an image of double width where left half and right half are identical. Prior to this step a copy of the image is made (i=I;). No data will be lost.
Anyway, the action based on the condition in the if-statement does seem slightly weird to me. Are you sure the code makes sense in a broader scope?

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!