比如函数
function y=myfunt1(x)
a=5e-6;
d=20e-6;
boc=0.6328e-7;
f=linspace(10e-3,10e-3,100);
z=2;
y=exp(-x.^2).*cos(2*pi.*x.*f/boc/z);
希望保存里面的 f 变量的第一百个数到工作空间,那么有两种方法,第一个是增加函数的返回参数个数
function [y,r]=myfunt1(x)
a=5e-6;
d=20e-6;
boc=0.6328e-7;
f=linspace(10e-3,10e-3,100);
r=f(100);
z=2;
y=exp(-x.^2).*cos(2*pi.*x.*f/boc/z);
调用:
[a,b]=myfunt1(5)
b =
0.0100
这个就是中间变量 f(100) 的输出,而且在工作空间中可以看到该变量。
![](http://www.ilovematlab.cn/data/attachment/forum/month_0910/20091021_c3c6a48b60a31b1e1df6SL2zYu7sGVyE.jpg)
方法 2 是使用 save ,load 函数。
function y=myfunt1(x)
a=5e-6;
d=20e-6;
boc=0.6328e-7;
f=linspace(10e-3,10e-3,100);
r=f(100);
save dat r
z=2;
y=exp(-x.^2).*cos(2*pi.*x.*f/boc/z);
load dat r
将函数修改成上述代码,但是调用后发现:
myfunt1(5)
![](http://www.ilovematlab.cn/data/attachment/forum/month_0910/20091021_29f2a9cb647e6aad1c3cYIYOOqZg9Sx7.jpg)
工作空间中并没有载入这个 r 变量的内容。考虑函数调用结束时会销毁暂时空间,可能在 load 后的变量内存被销毁,所以调整为在函数外部 load.
将 load 从函数中消去,调用时采用
myfunt1(5)
load dat r
工作空间中出现了 r
![](http://www.ilovematlab.cn/data/attachment/forum/month_0910/20091021_0c5ca962937deb6f36656GbwX75cYLTO.jpg)