Operandy do || a operatory && muszą być wymienialne na logiczne wartości skalarne

Mam prosty problem, którego szukam w szybkiej implementacji w Matlabie. Mam tablicę wartości, powiedzmy:

 a = floor(rand(5,5).*255)

Następnie mam tablicę progową o podobnej wielkości, powiedzmy, że:

a_thresh = floor(rand(5,5).*255)

Dla wartości wewnątrza jeśli są 0,5x mniejsze niż odpowiednia wartość wa_thresh Chcę, aby wyjście miało wartość 0 - podobnie dla 1,2x wartości wa_thresh należy również ustawić na zero,to znaczy:

a(a < a_thresh.*0.4) = 0
a(a > a_thresh.*1.2) = 0

Dla wartości pomiędzy 0,4 x 0,5 x 1,0 x 1,2 x chcę proporcjonalnej kwoty, a gdzie pomiędzy 0,5 a 1,0 chcę użyć wartościa niezmieniony. Myślałem, że mogę użyć czegoś takiego:

 a(a>= a_thresh .* 0.4 && a <a_thresh.* 0.5) = ((a - a_thresh.*0.4)/(a_thresh.*0.5 a_thresh.*0.4)) .* a;

Jednak pojawia się błąd, który mówi:

Operandy do || operacje && muszą być wymienialne na logiczne wartości skalarne

Jakieś rady, jak to rozwiązać? Oczywiście mogę to zrobić za pomocą pętli i byłoby to trywialne, ale chcę zachować kod wektorowy.

questionAnswers(1)

yourAnswerToTheQuestion