比如函数
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)的输出,而且在工作空间中可以看到该变量。
1.JPG (3.62 KB, 下载次数: 38)
2009-10-21 16:46 上传
方法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)
2.JPG (3.03 KB, 下载次数: 52)
2009-10-21 16:46 上传
工作空间中并没有载入这个r变量的内容。考虑函数调用结束时会销毁暂时空间,可能在load后的变量内存被销毁,所以调整为在函数外部load.
将load从函数中消去,调用时采用
myfunt1(5)
load dat r
工作空间中出现了r
3.JPG (3.66 KB, 下载次数: 66)
2009-10-21 16:46 上传
一个小问题,略做总结。