Matlab中保存函数内部中间变量到工作空间的两种方法

来源:互联网 发布:淘宝店怎么推广最有效 编辑:程序博客网 时间:2024/05/17 02:32

比如函数
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, 下载次数: 5)

下载附件  保存到相册

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, 下载次数: 0)

下载附件  保存到相册

2009-10-21 16:46 上传


工作空间中并没有载入这个r变量的内容。考虑函数调用结束时会销毁暂时空间,可能在load后的变量内存被销毁,所以调整为在函数外部load.
load从函数中消去,调用时采用
myfunt1(5)
load dat r
工作空间中出现了r


3.JPG (3.66 KB, 下载次数: 0)

下载附件  保存到相册

2009-10-21 16:46 上传

0 0