Как взглянуть на двоичные данные Matlabmatrix

#matlab

#matlab

Вопрос:

У меня действительно нет большого опыта работы с matlab, поэтому, пожалуйста, извините меня, если это глупый вопрос: у меня есть матрица Width * Height * 3 со значениями uint16, которая содержит изображение, теперь мне нужно взглянуть на байтовое представление. Чтобы прояснить, что я хочу, приведу небольшой пример, если бы это была матрица 1x1x3 со значениями 0x1234, 0x5678 и 0xABCD, я бы хотел массив, содержащий 6 uint8-значений: 0x12, 0x34, 0x56, 0x78, 0xAB и 0xCD. Чтобы я мог получить правильную гистограмму с 256 ячейками, которая точно показывает, какие байты встречаются как часто.

Конечно, я мог бы просмотреть всю матрицу и вычислить значения в 2 байта для каждого uint16, но с моими почти нулевыми знаниями matlab я бы использовал 2 цикла for и некоторое смещение битов, что привело бы к ужасной производительности

Приветствую Узаку

Ответ №1:

Я бы не стал переключаться на двоичное или шестнадцатеричное представление, в Matlab эти представления являются символами и не очень полезны для дальнейших вычислений. Я бы использовал это:

 first_bits=M./2^8
last_bits=mod(M,2^8)
  

Может быть полезно объединить оба в 4d-матрицу

 M2=cat(4,first_bits,last_bits)
  

Первые три измерения, как известно, последний индекс либо 1 для первых 8 бит, либо 2 для последних 8 бит.

Комментарии:

1. Спасибо, это было именно то, что я искал 🙂