What is the use of repmat in the following program?

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

답변 (1개)

Jan
Jan 2013년 8월 15일
편집: Jan 2013년 8월 15일

0 개 추천

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

Pooja
Pooja 2013년 8월 15일
By doing this will it affect the input image?Any data loss?
Jan
Jan 2013년 8월 15일
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?

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

태그

질문:

2013년 8월 15일

Community Treasure Hunt

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

Start Hunting!

Translated by