我是一个新的 MATLAB 用户。尝试将 y 初始化为 if 语句中的计算值。但是,当我尝试绘制 y 时,它说 y 未定义
function [y,xmax] = Alaw(x,A,ymax)
if nargin<3, ymax=1; end
if nargin<2, A=87.6; end
xmax=max(abs(x));
temp = ymax/A;
if ((x > 0) & ( x < temp ))
y = (A * abs(x)) ./ (1 + log(A) ).*sign(x);
end
if (x > temp)
y = ymax*( 1 + log(A*abs(x/ymax)) )./( 1+log(A) ).*sign(x);
end
fprintf('Plotting Data ...\n');
hold on;
figure;
plot(y);
xlabel('x-axis');
ylabel('y-axis');
title(' A LAW ');
pause;
fprintf('Writing the audio file ...\n');
wavwrite(y, 22050, 'Alaw.wav');
end