saving variables contained within a function
11 次查看(过去 30 天)
显示 更早的评论
I need to save variables that are computed inside a function (called from a header) without providing them as output parameters. I can't use 'save' because the function is called inside a loop and it overwrites (the variables computed change over time). Is the only way to accomplish this through 'fprintf'?
0 个评论
采纳的回答
Rick Rosson
2011-6-28
It is probably not the only way to accomplish this task, but it will certainly work.
You can use fprintf to print to a text file instead of to the command window. Please check the documentation:
doc fopen
doc fclose
doc fprintf
The code would be something like:
filename = 'data.txt';
txt = fopen(filename,'w')
...
...
for ...
...
fprintf(txt, '...\n' , ...);
...
end
...
...
fclose(txt);
...
...
HTH.
Rick
0 个评论
更多回答(2 个)
Rick Rosson
2011-6-28
Another approach would be to declare a persistent variable that will accumulate the results each time you call the function, and then perhaps write the results out to a MAT file the last time you call the function.
Please check the documentation:
doc persistent
The function template would be:
function y = foo(x)
persistent results
if isempty(results)
results = zeros(...);
end
...
...
end
HTH.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String Parsing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!