MATLAB Answers

0

For Loop Problem error

Asked by shalaw faraj on 15 Jul 2019
Latest activity Commented on by shalaw faraj on 15 Jul 2019
img=imread('C:\Users\Shalaw\Downloads\gray.jpeg');
[n,m]=size(img);
part1=img(1:n/2,1:m/2);
part2=img(1:n/2,(m/2)+1:end);
part3=img(n/2+1:end,1:m/2);
part4=img(n/2+1:end,m/2+1:end);
for i=1:4
subplot(2,2,i);
imshow(part1); -----> I want to change 1 to i, but i cant please help.
end

  1 Comment

Stephen Cobeldick on 15 Jul 2019
Simply use a cell array with indexing:
Putting numbers into variable names is a sign that you are doing something wrong. In most cases using indexing is simpler, neater, and much more efficient.

Sign in to comment.

2 Answers

Adam
Answer by Adam
on 15 Jul 2019
 Accepted Answer

img=imread('C:\Users\Shalaw\Downloads\gray.jpeg');
[n,m]=size(img);
part{1}=img(1:n/2,1:m/2);
part{2}=img(1:n/2,(m/2)+1:end);
part{3}=img(n/2+1:end,1:m/2);
part{4}=img(n/2+1:end,m/2+1:end);
for i=1:4
subplot(2,2,i);
imshow(part{i});
end

  1 Comment

shalaw faraj on 15 Jul 2019
very helpful thanks.

Sign in to comment.


Andrei Bobrov
Answer by Andrei Bobrov
on 15 Jul 2019

img=imread('C:\Users\Shalaw\Downloads\gray.jpeg');
[n,m]=size(img);
imgs = mat2cell(img,[n,n]/2,[m,m]/2)';
for ii = 1:4
subplot(2,2,ii);
imshow(imgs{ii});
end

  3 Comments

shalaw faraj on 15 Jul 2019
your answre is greate, what about 4*4 and 8*8 and .... ?
very thanks.
Andrei Bobrov
on 15 Jul 2019
k = 4;
[n,m]=size(img);
imgs = mat2cell(img, n/k*ones(1,k), m/k*ones(1,k))';
for ii = 1:k^2
subplot(k,k,ii);
imshow(imgs{ii});
end
shalaw faraj on 15 Jul 2019
I am very sorry, but I want to find (mean, max, min, std, entropy) for each block and using for but it is not working please help. thanks again.
img=imread('C:\Users\Shalaw\Downloads\gray.jpeg');
[n,m]=size(img);
part{1}=img(1:n/2,1:m/2);
part{2}=img(1:n/2,(m/2)+1:end);
part{3}=img(n/2+1:end,1:m/2);
part{4}=img(n/2+1:end,m/2+1:end);
for i=1:4
subplot(2,2,i);
imshow(part{i});
Xmean{i}=mean(part{i});
Xmax{i}=max(part{i});
Xmin{i}=min(part{i});
Xstd{i}=std(part{i});
Xentropy{i}=entropy(part{i});
end

Sign in to comment.