Я хочу поместить двоичное эквивалентное число для каждого элемента сбоку - то есть конечная матрица Concatenated_A
будет иметь размер m by nbits*n
, где [m,n] = size(A)
;Соединительные двоичные строки, полученные от десятичной до двоичной конверсии
A = [5, 5, 4, 10, 4;
10, 10, 10, 10, 5;
];
Я сделал попытку, но результат был неправильным. Мне нужна помощь в правильной реализации конкатенации. Спасибо
[m,n] = size(A);
numbits = 4;
for m = 1:M
Abin = dec2bin(A(m,:),numbits);
for j = 1:size(Abin,1)
Concatenated_A(m,:) = Abin(j,:);
end
end
Для первого ряда в A(1,:) = 5, 5, 4, 10, 4
; его десятичное преобразование каждого элемента даст матрицу, как показано ниже.
0 1 0 1
0 1 0 1
0 1 0 0
1 0 1 0
0 1 0 0
Тогда, как я могу сделать что-то вроде этого:
Concatenated_A(1,:) = [0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 0]
выше операция повторяется для каждой строки в A
.
двоичные цифры не являются правильными. Если вы можете получить ответ «Конкатенация_А» (1, :) = [0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 0] 'отличается от вашего. Ваш результат '0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0' имеет '1' в пятом бите. В принципе, если я преобразовываю строки двоичного слова в слова «nbits», я должен иметь возможность вернуть десятичную матрицу 'A'. Итак, используя '0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0' из вашего ответа должна быть указана первая строка' A', которая является '5,5,4,10,4' , Но на основе вашего ответа это не происходит, поскольку двоичные цифры неверны. –
Оба подхода к решению дают неправильные двоичные строки :( –
@SrishtiM К сожалению, я пропустил транспонирование! Исправлено. – Suever