У меня есть матрица, в которой каждый столбец не зависит друг от друга. Тем не менее, каждый столбец имеет минимум 0
и максимум 1
, это вероятность. Однако не обязательно, чтобы каждый столбец содержал только один 1
. Это создаст мне проблему, когда я попытаюсь найти индексы каждого столбца, состоящего из 1
. Индексы будут использоваться для извлечения значения другой матрицы, скажем, матрицы положения. Если он содержит два 1
, значения должны быть усреднены. Пример кода:
prob=[rand(4,1) rand(4,1) rand(4,1)];
max_prob_idx=find(prob==1);
%extract from position matrix
pos=rand(4,3);
extracted_pos=pos(max_prob_idx); %this is wrong, look example below
Из приведенного выше кода я получу вектор-столбец extracted_pos
. Это испортило мое извлечение данных. Численно:
prob=[1 0 1
0.1 1 0.8
0.2 0.5 1
0.3 1 1]
max_prob_idx=[1; 6; 8; 9; 11; 12];
pos=[1 5 9
2 6 10
3 7 11
4 8 12]
extracted_pos=[1; 6; 8; 9; 11; 12]; %6x1 matrix
Мне не хватает чего-то промежуточного, так что мой окончательный ожидаемый extracted_pos
будет
extracted_pos=[1; (6+8)/2; (9+11+12)/3]; %3x1 matrix
Я знаю, что это выглядит довольно грязно, но я не могу придумать другого способа объяснить мою проблему здесь. Можно ли это сделать? Или есть другой способ сделать это? Заранее спасибо!