如何在matlab中合并4 * 4单元阵列以形成1 256 * 256单元阵列

时间:2015-09-21 22:23:34

标签: matlab cell

我有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

1 个答案:

答案 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{:}); 显示内容相等。