将Matlab输出保存到文件中,而不是显示在屏幕上
我使用了一些优化函数,它将迭代步骤的结果显示在屏幕上。如何将迭代结果保存到文件中,而不是显示在屏幕上 我参考了fprintf,但它在我的案例中不起作用。日记也不工作,因为我不想在屏幕上显示 非常感谢。简单的事情 创建一个日志文件。从以下内容开始您的功能:将Matlab输出保存到文件中,而不是显示在屏幕上,matlab,save,screen,Matlab,Save,Screen,我使用了一些优化函数,它将迭代步骤的结果显示在屏幕上。如何将迭代结果保存到文件中,而不是显示在屏幕上 我参考了fprintf,但它在我的案例中不起作用。日记也不工作,因为我不想在屏幕上显示 非常感谢。简单的事情 创建一个日志文件。从以下内容开始您的功能: fid = fopen(logFile,'w+'); 当您想显示某些内容时,可以执行以下操作: fprintf(fid,'This is my result %d.\n',100); % Will print in the file fpri
fid = fopen(logFile,'w+');
当您想显示某些内容时,可以执行以下操作:
fprintf(fid,'This is my result %d.\n',100); % Will print in the file
fprintf('This is my result %d.\n',100); % Will print on screen
并记住在函数结束时关闭它:
fclose(fid);
调用函数以捕获其输出时使用evalc
T = evalc('string to evaluate')
这将捕获通常在命令窗口中打印的所有输出字符串。然后,您可以将T写入文件。当您说显示它时:文本?形象?矩阵?版本predcorr gam expon scale|U data NT 1 0.000 1 0 it pstep dstep pinfeas dinfeas gap PRIME obj dual obj cputime-----------------------------------------------------------------------0 0 0.000 | 0.000 | 1.6e+00 | 5.2e+00 | 1.8e+06 | 0.000000e+00 0.000000e+00 | 0:0:00 | chol 1 1 1非简单的单一格式,但是混合使用文本、行和数字向量。@user3046721:哪行代码产生输出?请提供一段代码,说明为什么日记不起作用。我认为这很容易调整。但是我如何将输出存储为变量并将其传递给fprintf?您能提供一些代码吗?没有你已经做过的,我帮不了你。对不起。我正在使用CVX()。代码是:cvx_begin变量beta(d)minimize((Xbeta-y)*(Xbeta-y)+Lambda1*norm(beta,1))cvx_end它将打印每次迭代的结果我以前从未使用过它。但如果查看cvx\sdpt3\Solver和cvx\sdpt3\HSDSolver,则有两个包含所有printf的主函数。您需要修改所有这些打印以获得所需内容。