2014-02-12 3 views
0

Я ве получил уравнение MatLab, как показано ниже:Matlab уравнение неизвестно

ImageA = GrayscaleImageB(find(GrayscaleImageB >= 0)); 

, что делает этот вложенный вектор find(GrayscaleImageB >= 0) делает в скобках изображений GrayscaleImageB? это что-то вроде умножения?

+0

Этот вопрос вряд ли поможет кому-либо. Просто найдите функцию 'find' в [документах] (http://www.mathworks.com/help/matlab/ref/find.html). Это не похоже на размножение. Нет конкретного вопроса о проблеме с вашим кодом. – chappjc

ответ

1

find в этом примере на самом деле совершенно ненужную и делает то же самое, как

ImageA = GrayscaleImageB(GrayscaleImageB >= 0); 

Который только возвращает все пиксели GrayScaleImageB, которые больше нуля, но как вектор-столбец.

Давайте рассмотрим пример:

B = rand(10) %//Random 10x10 matrix of values between 0 and 1 

теперь сравните B >= 0.5 и find(B >= 0.5) в командной строке. Вы увидите, что первый возвращает логический массив 10x10 с элементами, установленными в true, где выполняется условие, а метод find возвращает вектор-столбец линейных индексов каждого пикселя, удовлетворяющий условию (то есть больше 0,5).

+0

Допустим, что существует такое уравнение: ImageA = GrayscaleImageB (find (GrayscaleImageC> = 0)); Каков смысл вложенного массива в массиве? – user3213352

+1

Снова 'find' ничего не делает. Но в основном он выбирает из «ImageB» все пиксели «ImageC», которые больше или равны 0. – Dan

Смежные вопросы