连接从十进制到二进制转换获得的二进制字符串
Concatenate binary strings obtained from decimal to binary conversion
我想并排放置每个元素的二进制等效数,即最终矩阵 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
中的每一行重复上述操作。
您可以转置 dec2bin
的结果,使二进制表示沿着列向下移动,然后将其重塑为所需的形状,以便每一行都在它自己的行上。重塑后,我们再次进行转置,以便行再次跨行。此外,我们需要确保在开始之前转置 A
,以便我们沿行编码。
out = reshape(dec2bin(A.', numbits).', [], size(A, 1)).'
% 01010101010010100100
% 10101010101010100101
或者如果您想要一个逻辑矩阵,您可以将字符数组与字符 '1'
进行比较
out = reshape(dec2bin(A.', numbits).', [], size(A, 1)).' == '1'
% 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 0
% 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1
我想并排放置每个元素的二进制等效数,即最终矩阵 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
中的每一行重复上述操作。
您可以转置 dec2bin
的结果,使二进制表示沿着列向下移动,然后将其重塑为所需的形状,以便每一行都在它自己的行上。重塑后,我们再次进行转置,以便行再次跨行。此外,我们需要确保在开始之前转置 A
,以便我们沿行编码。
out = reshape(dec2bin(A.', numbits).', [], size(A, 1)).'
% 01010101010010100100
% 10101010101010100101
或者如果您想要一个逻辑矩阵,您可以将字符数组与字符 '1'
out = reshape(dec2bin(A.', numbits).', [], size(A, 1)).' == '1'
% 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 0
% 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1