2013-11-28 49 views
0

我使用了一些優化功能,它將迭代步驟的結果顯示在屏幕上。如何將迭代結果保存到文件中,而不是在屏幕上顯示它們?將Matlab輸出保存到文件,而不是在屏幕上顯示

我提到fprintf,但它不適用於我的情況。另外日記不起作用,因爲我不想在屏幕上顯示。

非常感謝。

+0

當你說顯示它:文本?圖片 ?矩陣? – Vuwox

+0

版本predcorr gam expon scale_data NT 1 0.000 1 0 it pstep dstep pinfeas dinfeas gap prim-obj dual-obj cputime ----------------------- -------------------------------------------- 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 – yliueagle

+0

不是簡單的單一格式,而是混合了文本,行和數字向量。 – yliueagle

回答

2

簡單的事情,

創建一個logFile。啓動函數:

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); 
+0

但是,我如何將輸出存儲爲變量並將其傳遞給fprintf? – yliueagle

+0

你能提供一些代碼嗎?沒有你已經做過的事情,我無法幫助你。 – Vuwox

+0

是的。我正在使用CVX(http://cvxr.com/cvx/)。並且代碼是:cvx_begin 變量beta(d) 最小化((X * beta-y)'*(X * beta-y)+ Lambda1 * norm(beta,1)) cvx_end它會打印每次迭代的結果 – yliueagle

0

使用EVALC當你調用你的函數來捕獲它的輸出時。

T = evalc('string to evaluate') 

這將捕獲通常在命令窗口中打印的所有輸出字符串。然後,您可以將T寫入文件。

相關問題