将代码从Matlab转换为C?

时间:2015-05-22 11:34:58

标签: c matlab entropy

我需要编写一个代码:

  

读取一个源文件,它“发出”8个字节的符号(字母,数字)。代码需要在累加器中添加+1,每次出现符号时大小为2 ^ 8 ^ n。我可以计算出熵。输入参数是文件,“n”是8字节* n(从3到5)。

示例:

  

如果我们从文件10001110|11110000|11111111|00001011|10101010读取,对于n = 3,我们在100011101111000011111111的累加器中放置+1,并在111100001111111100001011处继续+1,依此类推...... < / p>

主要问题是这个过程的速度。我需要读取最大50MB的文件。编程语言可以是C,Matlab或Java中的任何语言。

到目前为止,在matlab中代码为n = 1.我需要一个很好的累加器实现,所以它从一开始就没有大小......

load B.mat; %just some small part of file
file = dec2bin(B);
file = str2num(file);
[fileSize, ~] = size(file);
%Choose n
n = 1;

%Make accumulator
acu10 = linspace(0, 2^8^n-1, 2^8^n);
acu = dec2bin(acu10);
acu = str2num(acu);
index = zeros(size(acu10))';

%go through file and add +1 in accumulator
    for i = 1:n:fileSize
        for j = 1:size(acu)

        if acu(j,:) == file(i);
            index(j) = index(j) + 1;
        end

    end
end

0 个答案:

没有答案