Effacer les filtres
Effacer les filtres

Undefined function 'mtimes' for input arguments of type 'cell'.?

32 vues (au cours des 30 derniers jours)
sharif shikder
sharif shikder le 23 Jan 2016
%clear all;
%close all;
L_0=10; %Average outer scale of turbulance in m.
c_n=5*10^-12; %Structure constant of refractive index in m^-2/3.
c=3*10^8; % Speed of light in m/s.
f=30*10^9; % Frequency in HZ.
lamda=c/f;
L=4000;
del_ky=0.01;
[EbN0_dB]=[10 15 20 25 30 35 40 45 50 55];
sigma=[{0.307*(c_n)^2}*{(2*3.1416/lamda)^1.17}*{L^(1.833)}]-[{0.742*(c_n)^2}*{(2*23.1416/lamda)^0.17}*{(L^2.833)*(L_0^2)}]
for i= 1:10
snr=10.^(EbN0_dB(i)/10);
ky=0:del_ky:10;
pe=1/2.*erfc(ky.*sqrt(snr/2));
pdf_ky=(1/(sqrt(2*3.1416)*sigma))*exp((-ky.^2)/2*sigma^2);
prod=pe.*pdf_ky;
ber(i)=trapz(prod)*del_ky;
end
CDF_ky=trapz(pdf_ky)*del_ky
ber=ber./CDF_ky;
semilogy(EbN0_dB,ber)
ylabel('Bit Error Rate(BER)')
xlabel('Signal to Noise Ratio(SNR)');

Réponse acceptée

jgg
jgg le 23 Jan 2016
Modifié(e) : jgg le 23 Jan 2016
This expression:
sigma=[{0.307*(c_n)^2}*{(2*3.1416/lamda)^1.17}*{L^(1.833)}]-[{0.742*(c_n)^2}*{(2*23.1416/lamda)^0.17}*{(L^2.833)*(L_0^2)}]
is not proper Matlab syntax. The {} brackers denote cells. You cannot use them as delimiters for order of operations. The same is true of [] which have particular meaning. You probably want this instead:
sigma=((0.307*(c_n)^2)*((2*3.1416/lamda)^1.17)*(L^(1.833)))-((0.742*(c_n)^2)*((2*23.1416/lamda)^0.17)*((L^2.833)*(L_0^2)))
However, I strongly advise you to read up on the basic syntax of the language you're using. This is a really fundamental mistake, and if you don't understand this you'll run into error after error. You wouldn't try and program in Java or C++ by guessing at what the different commands mean, so why would you code in Matlab without looking up how to write expressions?
Try this getting started link before coding any further.
  1 commentaire
Walter Roberson
Walter Roberson le 23 Jan 2016
Oh, you would be astonished how many people program C++ by guessing at what the different commands mean. 15 years ago, the documentation for the C++ Standard Library was already effectively too big to read, so people mostly don't read it.

Connectez-vous pour commenter.

Plus de réponses (1)

eslam saad
eslam saad le 16 Oct 2018
i need power this matrix [0.3] [0.3] [0.2] [0.2] [0.2] [0.5] [0.2] [0.1] [0.1] [0.2] [0.6] [0.1]

Catégories

En savoir plus sur Call C++ from MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by