why no statistic in workspace
1 次查看(过去 30 天)
显示 更早的评论
Hello, everyone. I have a strange problem.
I write a function
function cubic_cardinal_Bspline_interpolation(f, x_l, x_r)
and input in the command window:
cubic_cardinal_Bspline_interpolation(@(x)1/(1+x^2), -5, 5)
the function runs normally but the workspace is empty, what's wrong? I suppose all statistics will be recorded in the workspace??
回答(1 个)
Steven Lord
2019-5-21
Nothing is wrong, this is the expected behavior for functions. From the documentation, "Functions have their own workspace, separate from the base workspace. Therefore, none of the calls to the function triarea overwrite the value of a in the base workspace. Instead, the function assigns the results to variables a1, a2, and a3."
Any variables you define in the workspace of a call to the cubic_cardinal_Bspline_interpolation function remain in that workspace until the function call exits. At that point, any variables you've declared the function to return are returned to its caller and any variables you haven't declared as an output argument cease to exist. [This is a bit of an oversimplification, but I'm trying not to complicate matters too much by getting into the exceptions.] You haven't declared your function to return any output arguments, so its entire workspace gets discarded. As stated on this documentation page:
If there is no output, you can omit it.
function myFunction(x)
This behavior is different than the behavior for scripts, which work directly in the workspace in which they were called (which at the Command Prompt is the base workspace.)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!