2015-02-03 3 views
-1

В mat-lab у меня есть двоичная матрица 10x10 print screen of mat-labКак преобразовать двоичную матрицу в десятичную матрицу в matlab?

Я хочу преобразовать это в десятичную матрицу 10x10. Как я могу это сделать?

Редактировать: r представляет собой двоичную матрицу 10x10.

+6

Какой формат 'r'? Если это матрица ячеек строк, просто используйте 'bin2dec' – Dan

+0

@Dan r - двоичная матрица 10x10. Картинка, которую я поставила вместе с вопросом, - это мгновенный снимок mat-lab. ** bin2dec ** Я пробовал, но он не работает для матрицы. Я ответил на ваш вопрос? –

+0

Что такое бинарная матрица в MATLAB? Является ли он массив ячеек логических строк? – Dan

ответ

3

По вашему снимку, мы можем сделать вывод, что у вас есть матрица типа двойного содержит только «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().

+0

Хорошая работа Мехмет! +1 – rayryeng

+0

Спасибо @rayryeng ... ((: Я понял, что работать с ячейкой не так просто, как работать с массивом, по крайней мере для меня. Это должно быть знаком с ним. – mehmet

+0

Работа с ячейками становится очень ограниченной, когда вы вы хотите попробовать и векторизовать свой код. В большинстве случаев у вас нет выбора, кроме как перебирать каждую ячейку ... что, конечно же, более удобное размещение данных в массивах ... и да, вы, конечно же, поняли это:) – rayryeng

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