Can I run a loop with image variables that have different dimensions?

2 次查看(过去 30 天)
Apologies if there is an obvious answer I'm missing.
I've got images stored as variables, but they've got different dimensions.
I've got this function to calculate the average RGB value of each image:
mean(reshape(I1, [], 3))
But I don't know how to make a loop that will run through each variable. I've tried to make it a list like this
a = [I1 I2 I3 I4 I5 I6 I7 I8]
But the dimensions are not the same, and it would be ideal if I did not have to edit the images further. Any help, or do I need to resize?

采纳的回答

Matt Macaulay
Matt Macaulay 2018-4-24
Make a cell of the images and loop through the cell:
a = {I1 I2 I3 I4 I5 I6 I7 I8};
n = length(a);
for i = 1:n
% Do some stuff
end
  2 个评论
Jamil Wanis
Jamil Wanis 2018-4-26
a = {I1 I2 I3 I4 I5 I6 I7 I8};
n = length(a);
for i = 1:n
mean(reshape(i, [], 3))
end
I'm getting this error: Product of known dimensions, 3, not divisible into total number of elements, 1.
It is registering the i variable as 1:8, but how do I refer to the variables in the cell using i? Thank you for the help
Jamil Wanis
Jamil Wanis 2018-4-26
Actually I believe I've gotten it using
a = {I1 I2 I3 I4 I5 I6 I7 I8};
n = length(a);
for i = 1:n
mean(reshape(a{1,i}, [], 3))
end
Is this the most effective way? Thank you for the solution!

请先登录,再进行评论。

更多回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by