How to add a custom string to a Matlab script's output?
1 回表示 (過去 30 日間)
古いコメントを表示
Dear community,
I have the following issue to solve. I run some data processing in a cluster environment, parallelized both across nodes and within a node with the use of parfor. The output is dumped into a single text file and there is no way to distinguish which line belongs to the processing of which data set. I can separate output from different nodes into individual log files, but not from different parallel jobs on a node, since it is treated by the cluster as a single job. My Matlab code is basically a wrapper around the data processing Matlab script. Is it possible to somehow change each output line of a Matlab script and add a specific string to the beginning of it, e.g. a dataset ID? The only solution I see is to go through the script, hunt down lines that output something and append something to it. Basically, I am looking for something like this in a bash shell:
script_name | sed 's/^/$DATA_ID/'
Best regards,
Renat.
2 件のコメント
Rik
2018 年 7 月 9 日
You could replace all occurrences of fprintf with your own function that appends your string and then calls fprintf again to write it. I would suggest you prepend the ID instead of append, as the fprintf call is likely to end with some form of a newline.
回答 (1 件)
Swastik Sarkar
2024 年 11 月 29 日
It is possible to override the built-in function responsible for displaying data to achieve the desired prefix on each output on each worker. For example, if the disp built-in function is used to display data, the following function can be defined to override it:
disp('Output')
function disp(arg)
builtin('disp', ['prefix: ' arg])
end
For more information on the builtin function, refer to the following documentation:
Hope this helps printing desired info without requiring extensive modifications to the entire code.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Parallel for-Loops (parfor) についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!