Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Matlab输出保存到文件中,而不是显示在屏幕上_Matlab_Save_Screen - Fatal编程技术网

将Matlab输出保存到文件中,而不是显示在屏幕上

将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

我使用了一些优化函数,它将迭代步骤的结果显示在屏幕上。如何将迭代结果保存到文件中,而不是显示在屏幕上

我参考了fprintf,但它在我的案例中不起作用。日记也不工作,因为我不想在屏幕上显示

非常感谢。

简单的事情

创建一个日志文件。从以下内容开始您的功能:

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的主函数。您需要修改所有这些打印以获得所需内容。