我有这个任务:
编写一个名为multioperations的Matlab函数,它同时在图形上返回以下输出。 一个。幅度缩放信号 Alpha,beta,gamma是用于分别定义移位,时间缩放和幅度缩放的比例的变量。取输入信号Asin(2πfn+φ)。必须在运行时从用户处获取Alpha,beta和gamma。
这是我的代码:
function [y,l]=multioperators(x,n)
prompt = 'Enter value for Shifting:\n Alpha=';
alpha = input(prompt);
a=alpha;
function [u,k]=sigshift(x,n,a)
k=n+a;
u=x;
end
prompt = 'Enter value for Time Scaling:\n Beta = ';
beta = input(prompt);
b=beta;
function [s,t]=sigscale(u,k,b)
t=b/k;
s=u;
end
prompt = 'Enter value for Amplitude Scaling:\n Gamma = ';
gamma = input(prompt);
c=gamma;
function[q,r]= sigamp(s,t,c)
r=t;
q=c*s;
end
end
但是当我按如下方式调用此函数时,我收到错误:
A=2;
n=-10:0.01:10;
phi=pi/2;
f=0.01;
x=A*sin(2*pi*f*n+phi);
subplot(2,1,1);
plot(n,x);
[y,l]=multioperators(x,n);
subplot(2,1,2)
plot(l,y)
我收到以下错误:
Error in multioperators (line 3)
prompt = 'Enter value for Shifting:\n Alpha=';
Output argument "y" (and maybe others) not
assigned during call to
"C:\Users\mehak_raibail\Documents\MATLAB\multioperators.m>multioperators".
Error in ex8_q3a (line 8)
[y,l]=multioperators(x,n);
请提供一些建议。
答案 0 :(得分:0)
您永远不会为变量y
(也不是l
)分配值,但是当您致电[y,l]=multioperators(x,n);
时,您希望将其作为输出。
此外,您还拥有从未调用过的嵌套函数。您可能需要查看doc。