将matlab输出保存到文本文件

时间:2013-07-11 17:10:11

标签: matlab permutation

我在Matlab中运行脚本以获取矩阵的随机排列测试,以获得交叉验证准确度值。我的脚本如下:

%randperm 

labels = [zeros(40,1); ones(40,1)];

for i = 1:500
    p = labels(randperm(length(labels))); 
end


bestcv = 0; 
for log2c = -10:10, 
    for log2g = -10:10, 
        cmd = ['-s 0 -t 0 -v 20 -c ', num2str(2^log2c), ' -g ', num2str(2^log2g) ' -q     ']; 
        cv = svmtrain(labels, p, cmd); 
        if (cv > bestcv),
            bestcv = cv; bestc = 2^log2c; bestg = 2^log2g;
            fprintf('%g %g %g (best c = %g, g = %g, rate = %g)\n', log2c, log2g, cv, bestc, bestg, bestcv);
        end
    end
end
cmd = ['-s 0 -t 0 -c ', num2str(bestc), ' -g ', num2str(bestg)];

我想知道如何将输出(500个交叉验证准确度值)保存到文本文件中,以及是否可以将其写入我的代码中。

提前致谢,

Andrea C

2 个答案:

答案 0 :(得分:0)

您可以使用save保存包含交叉验证结果的变量,然后使用load加载它们。例如,假设您在名为accuracies的变量中包含结果:

save('cross-validation-results.txt',accuracies);

以后

load('cross-validation-results.txt');

重新获得变量accuracies

要在代码中实现此功能,请将调整参数和相关精度保存到数组中,然后保存所述数组。

答案 1 :(得分:0)

我建议您使用save作为Marc Claesen描述的内容。

尽管如此,如果您只是需要一种原始的,快速的方式来保存您的值,您可以使用matlabs diary命令。

它将所有输入和输出保存到文本文件中。

diary('cross-validation-output.txt') 

要停止写入您需要致电的文件

diary OFF