情节给我一个空白的窗户

时间:2017-06-09 10:50:25

标签: matlab

我正在尝试计算压缩率,但是该图给我一个空白的窗口,它早先工作正常,但现在我不知道这里的问题是我的代码

function goodCompressionLevel = findGoodCompressionLevel(targetRatio, filename)
       width = 672;
        height = 380;


for compressionLevel = 1:255 
    [~,~,ext] = fileparts(filename);
    if strcmp(ext, '.db') ~= 1
        originalFileSize = 8*width*height;
        [~,name,~] = fileparts(filename);

            output = strcat(name, '_temp.jxr');
            system(['/usr/local/Cellar/jxrlib/1.1/bin/JxrEncApp  -i ' filename ' -o ' output ' -q ' num2str(compressionLevel)]);

            fileInfo = dir(output);
            newFileSize = fileInfo.bytes;

            ratios(compressionLevel+1) = originalFileSize/newFileSize;
            fprintf('Current Ratio: %d\n', ratios(compressionLevel+1));
            %delete(output);

    end
end

 plot(ratios);

minDist = Inf;
for r = 1:length(ratios)
    display(abs((ratios(r) - targetRatio)));
    display(minDist);
    if abs((ratios(r) - targetRatio)) <= minDist
        minDist = abs((ratios(r) - targetRatio));
    else
        goodCompressionLevel = r-1;
        display(goodCompressionLevel);
        break;

    end

end

end

你能帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

检查&#39;比率&#39;包含&#39; NaN&#39;值。您的原始文件大小是一个非常大的数字,我不确定fileInfo.bytes返回什么。 如果你想更方便地想象情节,试试

 plot(ratios,'.') 

这将点上图中所有现有的点。