Info

This question is closed. Reopen it to edit or answer.

im uploading two codes which have different outputs. Wats the difference between these two pieces of code. I mean , why there outputs are different . Shudn't outputs be same ?

2 views (last 30 days)
if true
% code
block=20*ones(200);
block1=60*ones(500);
block2=100*ones(500);
block3=150*ones(500);
block1(151:350,151:350)=block;
img1=uint8(block1);
subplot(2,3,1)
imshow(img1)
block2(151:350,151:350)=block;
img2=uint8(block2);
subplot(2,3,2)
imshow(img2)
block3(151:350,151:350)=block;
img3=uint8(block3);
subplot(2,3,3)
imshow(img3)
end
if true
% code
A=60*ones(500);
B=120*ones(500);
C=200*ones(500);
A(151:350,151:350)=20*ones(200);
subplot(2,3,1)
imshow(uint8(A))
B(151:350,151:350)=20*ones(200)
subplot(2,3,2)
imshow(uint8(A))
C(151:350,151:350)=20*ones(200)
subplot(2,3,3)
imshow(uint8(A))
end

Answers (3)

Guillaume
Guillaume on 26 Feb 2015
Well, in your second piece of code, you're showing A three times. If you show A, B and C you get the same figure as in the first piece:
figure;
subplot(2,3,1);
imshow(uint8(A));
subplot(2,3,2);
imshow(uint8(B));
subplot(2,3,3);
imshow(uint8(C));

sandhya
sandhya on 26 Feb 2015
Edited: sandhya on 26 Feb 2015
Rather your second code should be
if true
% code
A=60*ones(500);
B=120*ones(500);
C=200*ones(500);
A(151:350,151:350)=20*ones(200);
subplot(2,3,1)
imshow(uint8(A))
B(151:350,151:350)=20*ones(200)
subplot(2,3,2)
imshow(uint8(B))
C(151:350,151:350)=20*ones(200)
subplot(2,3,3)
imshow(uint8(C))
end
  3 Comments

sandhya
sandhya on 26 Feb 2015
The two codes will show different results because
In the first code you are subplotting three different images i.e block1,block2,block3
but in the second code your code subplots the same image i.e A three times...this is why you are getting wrong outputs....

Community Treasure Hunt

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

Start Hunting!