what is assignment error in the following code?

12 visualizzazioni (ultimi 30 giorni)
kanchanamala
kanchanamala il 29 Gen 2014
Commentato: kanchanamala il 30 Gen 2014
clc;
clear all;
Pa=9;
R=3;
beta=8;
N=4;
P0=0.3726;
q1= 1:1:10;
pout3=1-exp(-(((2^R)-1)/(P0))^(beta/2));
for j=1:length(q1)
k = floor((j*N)/Pa);
for jj = 1:N-k-1
P(j,jj)=0;
pout1(j,jj)=1-exp(-(((2^R)-1)/(P(j,jj)))^(beta/2));
end
for l = N-k+1:N
PP(j,l)=((N*j)-P0)/k;%ko;
pout2(j,l)=1-exp(-(((2^R)-1)/(PP(j,l)))^(beta/2));
end
end
for j=1:length(q1)
k = floor((j*N)/Pa);
outage_f(j)=((pout1(j,:)+sum(pout2(j,N-k+1:N))+ pout3)/N);
end
plot(q1,outage_f,'*y');
grid on;
xlabel('transmit power');
ylabel('outage probability');
while executing above code..... In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in fig2 (line 28) outage_f(j)=((pout1(j,:)+sum(pout2(j,N-k+1:N))+ pout3)/N);
it showing above error........... how to correct it??
  2 Commenti
José-Luis
José-Luis il 29 Gen 2014
Modificato: José-Luis il 29 Gen 2014
Have you tried using the debugger? Set a breakpoint in line 28 and look at the offending matrices.
kanchanamala
kanchanamala il 29 Gen 2014
yes ,i used debugger but showing error in the first iteration itself...... i dont know what error in it...

Accedi per commentare.

Risposte (2)

Iain
Iain il 29 Gen 2014
Changing outage(j) to outage(j,:) or outage(:,j) will corect the error.
The problem is that you're adding a scalar to a vector and then trying to put the result in a space thats only big enough for a scalar.
  9 Commenti
kanchanamala
kanchanamala il 29 Gen 2014
the above program is according to the theorem which i was posted before......
kanchanamala
kanchanamala il 30 Gen 2014
pls reply us for this code........

Accedi per commentare.


Azzi Abdelmalek
Azzi Abdelmalek il 29 Gen 2014
Modificato: Azzi Abdelmalek il 29 Gen 2014
% The expression outage_f(j)=(pout1(j,:)+sum(pout1(j,N-k+1:N))+ pout3)/N; becomes
outage_f(j,:)=(pout2(j,:)+sum(pout2(j,N-k+1:N))+ pout3)/N;
Because the size of pout1 is 6x3 and length(q1) is 10
%-----------------------------------------
clc;
clear
Pa=9;
R=3;
beta=8;
N=4;
P0=0.3726;
q1= 1:1:10;
pout3=1-exp(-(((2^R)-1)/(P0))^(beta/2));
for j=1:length(q1)
k = floor((j*N)/Pa);
for jj = 1:N-k-1
P(j,jj)=0;
pout1(j,jj)=1-exp(-(((2^R)-1)/(P(j,jj)))^(beta/2));
end
for l = N-k+1:N
PP(j,l)=((N*j)-P0)/k;%ko;
pout2(j,l)=1-exp(-(((2^R)-1)/(PP(j,l)))^(beta/2));
end
end
for j=1:length(q1)
k = floor((j*N)/Pa);
outage_f(j,:)=(pout2(j,:)+sum(pout2(j,N-k+1:N))+ pout3)/N;
end
plot(q1,outage_f,'*r');
grid on;
xlabel('transmit power');
ylabel('outage probability');
  10 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 30 Gen 2014
What theorem you are talking about?
kanchanamala
kanchanamala il 30 Gen 2014
Actually this is our problem
If q1<Pa we have
Pi* = 0 , 1 i N-k-1
= P0', i=N-k
=(Nq1 - P0')/k , N-k+1 i N
Where q1 and k are given as follows
k =(q1 * N)/Pa
P0'= arg min(P belongs to p) F(P) + k*F[((N*q1)-P)/k],
with p= [0,Pb] union (N*q1/(k+1))
where N= total no.of blocks = 4
i= no.of.blocks within total block
Pb=7.2
Pa=9.3
q1=average transmit power which varies from 1 to 10
F(P)= 1-(exp(-((2^(R))-1)/P)^(beta/2))
R=3
beta=8
our problem is to write a matlab code for Pi*
We need to plot for average transmit power and outage prob {F(P)}.....For P0' we found the value as 0.3762

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by