MATLAB Answers

For Loop Problem error

1 view (last 30 days)
shalaw faraj
shalaw faraj on 15 Jul 2019
Commented: 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
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.

Accepted Answer

Adam
Adam on 15 Jul 2019
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
shalaw faraj on 15 Jul 2019
very helpful thanks.

Sign in to comment.

More Answers (1)

Andrei Bobrov
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
shalaw faraj on 15 Jul 2019
your answre is greate, what about 4*4 and 8*8 and .... ?
very thanks.
Andrei Bobrov
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
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.

Sign in to answer this question.