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.