A
- это заданный массив N x R xT
. Я должен разделить его по горизонтали до N
подмассивов размером L x M
, а затем сгруппировать каждый z
в массив K
и взять среднее значение.
Например: A
- массив rand (N, R, T) = rand (16, 3, 3);Теперь я собираюсь разделить его:
A=rand( 16, 3 ,3) : A(1,:,:), A(2,:,:), A(3,:,:), A(4,:,:), ... , A(16,:,:).
У меня есть 16 срезов.
B_1=A(1,:,:); B_2=A(2,:,:); B_3=A(3,:,:); ... ; B_16=A(16,:,:);
Следующим шагом является группировка каждые 3 (например).
Теперь я собираюсь создать K_i
как:
K_1(1,:,:)=B_1;
K_1(2,:,:)=B_2;
K_1(3,:,:)=B_3;
...
K_8(1,:,:)=B_14;
K_8(2,:,:)=B_15;
K_8(3,:,:)=B_16;
Средний массив найден как:
C_1=[B_1 + B_2 + B_3]/3
...
C_8= [ B_14 + B_15 + B_16] /3
Я реализовал его как:
A_reshape = reshape(squeeze(A), size(A,2), size(A,3),2, []);
mean_of_all_slices = permute(mean(A_reshape , 3), [1 2 4 3]);
Question 1
Я проверил вручную. Это дает мне неверный результат. Как это исправить? [решено]
РЕДАКТИРОВАТЬ 2 Мне нужно смоделировать следующие вычисления:
взять произведение на каждый кусочек массива K_i
с другим массивом P_p
: это означает:
for `K_1` is given `P_1`): `B_1 * P_1` , `B_2 * P_1`, `B_3 * P_1`
...
for `K_8` is given `P_8`): `B_14 * P_8` , `B_15 * P_8`, `B_16 * P_8`
Я решил !!!