我有256 * 256矩阵(基本上我在图像上进行了DNA操作)。我将它们分成4 * 4单元阵列进行某些操作。现在我想将它们重新组合成一个256 * 256的单元格?我能在MATLAB中做到吗
a=imread('cameraman.tif');
for i=1:1:256
for j=1:1:256
b{i,j,1} = dec2bin(a1(i,j),8);
end
end
plaintext_dna = bin2DNA(b);
size(plaintext_dna);
K=4;
c=K*ones(256/4, 1);
small_mat=mat2cell(plaintext_dna,c',c');
% merge small_mat to get back plaintext_dna........
function [ DNA_matrix] = bin2DNA( bin_matrix )
codebook = containers.Map({'00','11','10','01'},{'A','T','G','C'}); %// Lookup
outputCell = cellfun(@(x) values(codebook, {x(1:2),x(3:4),x(5:6),x(7:8)}), ...
bin_matrix, 'uni', 0);
DNA_matrix = cellfun(@cell2mat, outputCell, 'uni', 0);
end
答案 0 :(得分:0)
在您编辑了示例之后(我假设a1
意味着a
),我得到了256次256个单元阵列plaintext_dna
和64次64个阵列的4乘4个单元阵列{{1 }}。要将small_mat
合并到与small_mat
等效的数组中,我执行了以下操作:
plaintext_dna
然后明文和重建之间的cols = size(small_mat,2);
reconstructed = cell(1, cols);
for n=1:cols
reconstructed{n} = cat(1,small_mat{:,n});
end
reconstructed = cat(2,reconstructed{:});
显示内容相等。