Преобразование из двоичного в десятичное число в MATLAB

StackOverflow https://stackoverflow.com/questions/7390315

  •  29-10-2019
  •  | 
  •  

Вопрос

У меня проблема с преобразованием двоичного кода в десятичный (это кажется очень длинным).

родовое слово

Можно ли изменить эту строку

родовое слово

к чему-то короче?

Это было полезно?

Решение

Вариант 1:

Один из способов упростить то, что вы делаете, - сначала создать матрицу масштабных коэффициентов 3 на 3 (то есть степени двойки) и инициализировать ее перед циклами:

родовое слово

Затем вы можете заменить все внутри вашего цикла следующими векторизованными операциями:

родовое слово

Вариант 2:

В качестве альтернативы я считаю, что вы можете полностью удалить обе петли и заменить их одним вызовом NLFILTER , чтобы получить код вашего кодового тега матрицы:

родовое слово

Другие советы

Я не совсем уверен, что вы там делаете, но делает bin2dec сделать то, что вы хотите?

Я добавляю другое решение с помощью COLFILT функция.

Он включает размещение всего скользящего окна в столбцы матрицы, которую мы обрабатываем с помощью специальной функции, а затем преобразовываем результат в исходную матрицу. Внутренне он использует IM2COL и функции COL2IM .

Вот пример:

родовое слово

скриншот

По сравнению с @gnovice второй ответ, прочтите этот совет из документации NLFILTER . :

<цитата>

nlfilter может долго обрабатывать большие изображения. В некоторых случаях, функция colfilt может выполнять ту же операцию намного быстрее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top