ber
の行列がerr
と一致しないことを理解しています。次のコードでエラーを克服するための助けが必要です:エラー:A(:) = B、AとBの要素の数は同じでなければなりません
for snr= 1:50
err=0;
ber = err;
No= 1/10^(snr/10);
for i= 1: 10^6;
x= sign (randn(2,1));
h= randn (1,2) * sqrt(1/2) + sqrt (1/2)* 1j* randn(1,2);
w= sqrt(No/2)* randn (1,2) + sqrt(No/2)*1j* randn(1,2);
alamh=[ h(1) h(2); conj(h(2)) -conj(h(1))];
y= alamh * x + transpose(w);
h_pseudoinverse= inv(ctranspose(alamh)* alamh)\ ctranspose(alamh);
r= x + h_pseudoinverse * transpose (w);
est_x= sign(real(r));
err= (est_x~=x)+err;
end
ber(snr)= err/10^6;
end
semilogy (1:50, ber,'-O')
エラー:内部ループの実行後
Error: A(:) = B, the number of elements in A and B must be the same
「ber」にしたいことに関する詳細情報を提供できますか?内部ループが実行された後、 'err'は2x1の行列です。 'err'のすべての要素を保存したい場合は、例えば、(1)コードの前に' ber = NaN(2,50); '行を追加し、(2)' ber = err; '行を削除します。 (3) 'ber(snr)...'行を 'ber(:, snr)= err/10^6;に変更します。 – verbatross
はい、これで問題は解決します。ありがとう。 – Nusrat
これで問題が解決した場合は、@verbatrossで答えを受け入れてください。 – Haz