函数调用的问题
请教高手:设有一函数表达式,
N=256;
n=0:N-1;
s=exp{j(2*n+3*n.^2)};
现在要创建一个f.m文件的函数function f=f(s,T),该函数的功能是实现对上面的s函数表达式的延时,即f=s(t-T),请问如何实现?谢谢。 没看明白问题,楼主再说说? 意思就是说:我现在要创建一个函数f,让它实现s=exp{j(2*n+3*n.^2)}的延时T后的表达式,即变为f=exp{j[2*(n-T)+3*(n-T).^2}
我想定义的m文件的函数为:function f=f(s,T),让它实现对表达式s的调用,然后得到s延时T后的表达式,麻烦帮我想一下该咋写,谢谢啦! s=exp{j(2*n+3*n.^2)}
里面没有和T相关啊 还是不明白到底要怎的..
s如果由
N=256;
n=0:N-1;
s=exp{j(2*n+3*n.^2)};
产生, 那f函数里面没必要把s作为参数吧,直接把它写到函数体里就行了.
要是s只是一个数组,那样的话我觉得先需要求得n,然后再代入延时后的公式中,稍微麻烦点 楼主是要做符号运算吧?
我只能实现字符的替换,以下是实现方法,仅供参考。
主函数syms t;
s=exp(j*(2*t+3*t.^2));
sT=f(char(s),'T')你要的子函数(实际上只有一句话,可以不用子函数的)。function fs=f(ss,Tao)
fs=regexprep(ss,'t',sprintf('(t-%c)',Tao));运行结果:
sT =
exp(i*(2*(t-T)+3*(t-T)^2))
[ 本帖最后由 sogooda 于 2008-5-26 19:31 编辑 ] 之所以要定义这个函数,是因为在主程序中要反复调用它,是把表达式s=exp{j(2*n+3*n.^2)}写在外面而不是把s定义成函数,如果把s定义成函数,再进行延时,那个就很简单,现在关键是就给一个表达式s=exp{j(2*n+3*n.^2)},然后定义一个函数function f=f(s,T)来实现f=exp{j},我看见有人调用过这样的函数,但没见到过里面是咋写的。
我不是做符号运算,是数值计算,是写一个延时函数,根据不同参数的调用,得到相应的延时序列。
回复 7楼 的帖子
符号都出来了,数值还会遥远吗?只要前面定义好了t,T
eval(sT)就可以了
页:
[1]