我有一个双循环,我希望也返回一个子图:
for j = 1:tileno
for k = 1:tileno
imsub{j,k} = imgquant(rowdiv*(j-1)+1:rowdiv*j, coldiv*(k-1)+1:coldiv*k);
subplot(tileno, tileno, ???); hist(imsub{j,k}(:), n_bins);
end
end
因此代码在imsub {j,k}中存储了一些rowdiv * coldiv图像,并且在该循环期间我希望绘制每个存储图像的直方图。我尝试在双循环上运行循环:
for j = 1:tileno
for k = 1:tileno
for p = 1:tileno^2
imsub{j,k} = imgquant(rowdiv*(j-1)+1:rowdiv*j, coldiv*(k-1)+1:coldiv*k);
subplot(tileno, tileno, p); hist(imsub{j,k}(:), n_bins);
end
end
end
但是这返回了相同的直方图tileno ^ 2次,所以我认为它会执行imsub {1,1}的直方图,然后对每个p进行子绘图,而不是每个p返回一个不同的hist(imsub { J,K})。非常感谢任何帮助。
答案 0 :(得分:1)
您需要手动计算索引:
for j = 1:tileno
for k = 1:tileno
plot_index = (j-1)*tileno+k;
imsub{j,k} = imgquant(rowdiv*(j-1)+1:rowdiv*j, coldiv*(k-1)+1:coldiv*k);
subplot(tileno, tileno, plot_index hist(imsub{j,k}(:), n_bins);
end
end