Getting error of Double

8 次查看(过去 30 天)
moonman
moonman 2011-10-6
This is portion of my code
function [dtmf]=dtmfdial(x,fs);
%This function produces DTMF Tone corresponding to given
%key number
%abcdefg=input key numbers
%fs= The sampling frequency
lfg = [697 770 852 941]; % Low frequency group
hfg = [1209 1336 1477]; % High frequency group
f = [];
for c=1:4,
for r=1:3,
f = [ f [lfg(c);hfg(r)] ];
end
end
table=f';
dur=.5;
tt=0:(1/fs):dur;
n=length(x);
C=cell(1,length(x));
for k=1:n
if x(k)==1
freqa=table(1,1);
freqb=table(1,2);
else if x(k)==2
freqa=table(2,1);
freqb=table(2,2);
and so on
When i run this function i get this error
>> dtmf=dtmfdial([1 2 3 4 5 6 7],8000)
??? Undefined function or method 'dtmfdial' for input arguments of type 'double'.

采纳的回答

Wayne King
Wayne King 2011-10-6
Hi, are you actually assigning anything to dtmf inside your function?
For example, if you wrote a function
function test = test_func(x)
test1 = x+1;
And called that function at the command line:
y = test_func(4);
You would get that error message, because you assign the output to test1 inside the function, but the function is set up to return test.

更多回答(3 个)

Honglei Chen
Honglei Chen 2011-10-6
Is your dtmfdial on path? You can also try
rehash toolbox
to regenerate the path.
HTH

Laura Proctor
Laura Proctor 2011-10-6
Try the command
which dtmfdial
at the command window. Perhaps the function is not on your path or you have a variable with the name dtmfdial. This will let you know why it's not working.

moonman
moonman 2011-10-6
Ok my this prblem is solved and i am listening tones but i am getting one error at end after listening the tones
??? Output argument "dtmf" (and maybe others) not assigned during call to "E:\Installed\Matlab 2011\Work\DTMF\dtmfdial.m>dtmfdial".

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by