what is assignment error in the following code?

조회 수: 13 (최근 30일)
kanchanamala
kanchanamala 2014년 1월 29일
댓글: kanchanamala 2014년 1월 30일
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
José-Luis
José-Luis 2014년 1월 29일
편집: José-Luis 2014년 1월 29일
Have you tried using the debugger? Set a breakpoint in line 28 and look at the offending matrices.
kanchanamala
kanchanamala 2014년 1월 29일
yes ,i used debugger but showing error in the first iteration itself...... i dont know what error in it...

댓글을 달려면 로그인하십시오.

답변 (2개)

Iain
Iain 2014년 1월 29일
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
kanchanamala
kanchanamala 2014년 1월 29일
the above program is according to the theorem which i was posted before......
kanchanamala
kanchanamala 2014년 1월 30일
pls reply us for this code........

댓글을 달려면 로그인하십시오.


Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 29일
편집: Azzi Abdelmalek 2014년 1월 29일
% 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
Azzi Abdelmalek
Azzi Abdelmalek 2014년 1월 30일
What theorem you are talking about?
kanchanamala
kanchanamala 2014년 1월 30일
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

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by