如何解决MATLAB中未定义的函数错误?
问题描述:
我试图在N = 2时使用zeroforcing编写quadrature phase-shift keying(QPSK)的代码,并且出现错误。如何解决MATLAB中未定义的函数错误?
下面是代码:
Modulation = 'QPSK'
Decode_Method = 'ZeroForcing'
switch Modulation
case {'QPSK'}
Symbols = [ 1+j 1-j -1+j -1-j ]';
end
Symbols = Symbols.';
nSymbols = length(Symbols);
SNR_Array = [0.3 0.7 1.2 2.5 5 6.2 10 15.4 22 45 75.7 100.0];
nSNR = length(SNR_Array);
Ntest = 20;
N = 2;
for iSNR = 1 : nSNR
SNR = SNR_Array(iSNR);
Nerror = 0;
for i = 1:Ntest
H = randn(N,N) + j*randn(N,N);
X = Symbols(ceil(nSymbols*rand(N,1)))';
Noise = (randn(N,1) + j*randn(N,1))/sqrt(2)/sqrt(SNR);
Y = H*X + Noise;
switch Decode_Method
case {'ZeroForcing'}
X_Decode = Zero_Forcing(Y,H,Symbols);
end
end
Nerror = Nerror + length(find(X ~= X_Decode));
end
Symbol_Error_Rate(iSNR) = Nerror/Ntest/N;
figure(1)
loglog(SNR_Array, Symbol_Error_Rate,'b')
hold on
xlabel('SNR')
ylabel('Symbol Error Ratio')
title('Symbol Error Ratio for NxN MIMO System')
和错误是:
???对'double'类型的输入参数未定义的函数或方法'Zero_Forcing'。
错误==>无标题2在33
X_Decode = Zero_Forcing(Y,H,Symbols);
我该如何解决这个错误?
答
该错误表示MATLAB找不到函数Zero_Forcing
。如果你有这个名字的功能,你应该确保它在MATLAB路径上,也就是MATLAB知道的目录。否则,你应该写这个函数。这似乎相当重要。
此外,你可能不想调用你的函数'Untitled2',但给它一个更有意义的名字。