В mat-lab у меня есть двоичная матрица 10x10 Как преобразовать двоичную матрицу в десятичную матрицу в matlab?
Я хочу преобразовать это в десятичную матрицу 10x10. Как я могу это сделать?
Редактировать: r представляет собой двоичную матрицу 10x10.
В mat-lab у меня есть двоичная матрица 10x10 Как преобразовать двоичную матрицу в десятичную матрицу в matlab?
Я хочу преобразовать это в десятичную матрицу 10x10. Как я могу это сделать?
Редактировать: r представляет собой двоичную матрицу 10x10.
По вашему снимку, мы можем сделать вывод, что у вас есть матрица типа двойного содержит только «1
» и «0
» в качестве значения.
Поэтому я воспроизвожу и решить дело, как это:
>> r = [11111010, 11111111; 1010101, 101]
result = cellfun(@(x) bin2dec(num2str(x)), num2cell(r))
r =
11111010 11111111
1010101 101
result =
250 255
85 5
Или, вы не должны использовать cellfun()
, вы можете просто использовать arrayfun()
без преобразования массив/матрицы в ячейку массива, например:
>> r = [11111010, 11111111; 1010101, 101]
result = arrayfun(@(x) bin2dec(num2str(x)), r)
Или, если мы предполагали, у вас есть двоичного типа (логические) клетки ARRA у, это может быть решение:
r = {[1 1 1 1 1 0 1 0], [1 1 1 1 1 1 1 1]; [1 0 1 0 1 0 1], [1 0 1]}; %// Double type binary valued cell array
r = cellfun(@(x) logical(x), r, 'UniformOutput', false); %// You asserted binary type cell array is given
result = cell2mat(cellfun(@(x)(sum(pow2(length(x)-1:-1:0) .* x)), r, 'UniformOutput', false));
Используемые встроенные функции: cellfun()
, bin2dec()
, num2str()
, num2cell()
, arrayfun()
и cell2mat()
.
Хорошая работа Мехмет! +1 – rayryeng
Спасибо @rayryeng ... ((: Я понял, что работать с ячейкой не так просто, как работать с массивом, по крайней мере для меня. Это должно быть знаком с ним. – mehmet
Работа с ячейками становится очень ограниченной, когда вы вы хотите попробовать и векторизовать свой код. В большинстве случаев у вас нет выбора, кроме как перебирать каждую ячейку ... что, конечно же, более удобное размещение данных в массивах ... и да, вы, конечно же, поняли это:) – rayryeng
Какой формат 'r'? Если это матрица ячеек строк, просто используйте 'bin2dec' – Dan
@Dan r - двоичная матрица 10x10. Картинка, которую я поставила вместе с вопросом, - это мгновенный снимок mat-lab. ** bin2dec ** Я пробовал, но он не работает для матрицы. Я ответил на ваш вопрос? –
Что такое бинарная матрица в MATLAB? Является ли он массив ячеек логических строк? – Dan