MATLAB цикл через определенные целые числа и в порядке, который я указываю v2
Нормальный цикл
for i=1:50
end
но я хочу выполнить цикл через определенные целые числа в 4 разных массивах одновременно и в указанном порядке. Таким образом, в первом цикле Matlab получит первое целое число из r1, r2, c1, c2. Тогда для второго цикла Matlab возьмет второе целое число из r1, r2, c1, c2.
For r1 = [1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128];
r2 = [1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148];
c1 = [776, 776 + 1280, 776 + 1280*2, 776 + 1280*3, 776 + 1280*3 + 994, 776 + 1280*4 + 994, 776 + 1280*5 + 994, 776 + 1280*6 + 994, 776 + 1280*7 + 994];
c2 = [792, 792 + 1280, 792 + 1280*2, 792 + 1280*3, 792 + 1280*3 + 994, 792 + 1280*4 + 994, 792 + 1280*5 + 994, 792 + 1280*6 + 994, 792 + 1280*7 + 994];
a1_raw = imread('T:\SST\...\pinhole_1-8_6s', 'PixelRegion', {[r1, r2], [c1, c2]});
End
Кроме того, я бы хотел, чтобы a1_raw менялся каждый раз, когда цикл зацикливался, чтобы в конце цикла у меня было 8 разных "a1_raws". Как я могу сделать это в MATLAB?
1 ответ
Решение
Использовать один индекс для всех массивов
n = numel( r1 ); %// assuming r2, c1 and c2 all have same number of elements
a1_raw = cell( 1, n ); %//pre-allocate
for ii = 1:n
r1i = r1(ii);
r2i = r2(ii);
c1i = c1(ii);
c2i = c2(ii);
a1_raw{ii} = imread('T:\SST\...\pinhole_1-8_6s', 'PixelRegion', {[r1i, r2i], [c1i, c2i]});
end