Фильтрация 3D матрицы выше определенного порога? - PullRequest
0 голосов
/ 11 марта 2019

У меня есть две 3D-матрицы одинакового размера. Скажем, A содержит значения в диапазоне от 0 до 1, а B содержит определенные дискретные значения.

Я хочу извлечь значения из матрицы B, которые превышают определенные пороговые значения в A?

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 11 марта 2019

Как это?Взгляните на логическое индексирование .

% Input.
B = reshape(1:18, 2, 3, 3)
A = rand(size(B))

% Threshold.
thr = 0.75

% Output.
output = B(A > thr)

B =
ans(:,:,1) =
   1   3   5
   2   4   6
ans(:,:,2) =
    7    9   11
    8   10   12
ans(:,:,3) =
   13   15   17
   14   16   18

A =
ans(:,:,1) =
   0.80533   0.24370   0.89180
   0.90358   0.22422   0.69243
ans(:,:,2) =
   0.119366   0.168337   0.771999
   0.206004   0.065481   0.979772
ans(:,:,3) =
   0.0057303   0.1469925   0.0556628
   0.0454038   0.4122576   0.9847027

thr =  0.75000

output =
    1
    2
    5
   11
   12
   18
...