📄 bitandpoweralloct2.c
字号:
if (v_ > e_) {
mlfAssign(&i, _mxarray2_);
} else {
/*
* right=0;
* for p=1:1:K
* right=right+1/gamag(p,i);
* end
* gama_sum=right/K;
* right=gama_sum-1.6/log(5*Pe);
* right=1/right;
*
* % right2=0;
* % for p=1:1:K
* % right2=right2+(log(5*Pe)/log(2.7183))/(gamag(p,i)*(-1.6));
* % end
* % right2=right2/K;
* % right2=(log(5*Pe)/log(2.7183))/(1.6*(-1-right2));
*
* Cbitvector1=zeros(K,1);
* for q=1:1:K
* % if(gamag(q,i)<right|gamag(q,i)<right2)
* if(gamag(q,i)<right)
* Cbitvector1(q)=0;
* flag(q,i)=0;
* else
* flag(q,i)=1;
* sum1=gamag(q,i)*(gama_sum-1.6/log(5*Pe));
* Cbitvector1(q)=log2(sum1);
* end
* end
*
* for s=1:1:K
* % Cbitvector1(s)=4;
* if(Cbitvector1(s)<1)
* Cbitvector1(s)=0;
* end
*
* % if(Cbitvector1(s)>=1 && Cbitvector1(s)<2)
* % % if(Cbitvector1(s)>=1)
* % Cbitvector1(s)=1;
* % end
*
* if(Cbitvector1(s)>=1 && Cbitvector1(s)<3)
* % if(Cbitvector1(s)>=3)
* Cbitvector1(s)=2;
* end
* if(Cbitvector1(s)>=3 && Cbitvector1(s)<5)
* Cbitvector1(s)=4;
* end
* if(Cbitvector1(s)>=5)
* Cbitvector1(s)=6;
* end
* % % % %
* % if(Cbitvector1(s)>=4.5)
* % Cbitvector1(s)=4;
* % end
* end
* Cbitvector(:,i)=Cbitvector1;
*
*
*
* % right2=0;
* % for p=1:1:K
* % right2=right2+(log(5*Pe)/log(2.7183))/gamag(p,i)*(-1.6);
* % end
* %
* % right2=right2/K;
* % right2=(log(5*Pe)/log(2.7183))/(1.6*(-1-right2));
* %
*
*
*
* poweralloctvector1=zeros(K,1);
*
* for t=1:1:K
* if(gamag(t,i)<right)
* poweralloctvector1(t)=0;
* % flag(t,i)=0;
* else
* % flag(t,i)=1;
*
*
* sumsum1=1+(log(5*Pe)/1.6)*(1/gamag(t,i)-gama_sum);
* poweralloctvector1(t)=Saverage*sumsum1;
* end
* end
* poweralloctvector1=poweralloctvector1*(N_carrier*Saverage)/(sum(poweralloctvector1)*(N/K));
* % pow=pow+sum(poweralloctvector1);
* % pow=pow/N_carrier;
* % poweralloctvector(:,i)=poweralloctvector1/pow;
* poweralloctvector(:,i)=poweralloctvector1;
* % An=poweralloctvector1;
* end
*/
for (; ; ) {
mlfAssign(&right, _mxarray1_);
{
int v_1 = mclForIntStart(1);
int i_ = 1;
int e_1 = mclForIntIntEnd(v_1, i_, mclVv(K, "K"));
if (e_1 == mclIntMin()) {
mlfAssign(&p, _mxarray2_);
} else {
for (; ; ) {
mlfAssign(
&right,
mclPlus(
mclVv(right, "right"),
mclMrdivide(
_mxarray0_,
mclIntArrayRef2(
mclVv(gamag, "gamag"), v_1, v_))));
if (v_1 == e_1) {
break;
}
v_1 += i_;
}
mlfAssign(&p, mlfScalar(v_1));
}
}
mlfAssign(
&gama_sum, mclMrdivide(mclVv(right, "right"), mclVv(K, "K")));
mlfAssign(
&right,
mclMinus(
mclVv(gama_sum, "gama_sum"),
mclMrdivide(
_mxarray5_,
mlfLog(mclMtimes(_mxarray6_, mclVa(Pe, "Pe"))))));
mlfAssign(
&right, mclMrdivide(_mxarray0_, mclVv(right, "right")));
mlfAssign(
&Cbitvector1, mlfZeros(mclVv(K, "K"), _mxarray0_, NULL));
{
int v_2 = mclForIntStart(1);
int i_ = 1;
int e_2 = mclForIntIntEnd(v_2, i_, mclVv(K, "K"));
if (e_2 == mclIntMin()) {
mlfAssign(&q, _mxarray2_);
} else {
for (; ; ) {
if (mclLtBool(
mclIntArrayRef2(
mclVv(gamag, "gamag"), v_2, v_),
mclVv(right, "right"))) {
mclIntArrayAssign1(
&Cbitvector1, _mxarray1_, v_2);
mclIntArrayAssign2(&flag, _mxarray1_, v_2, v_);
} else {
mclIntArrayAssign2(&flag, _mxarray0_, v_2, v_);
mlfAssign(
&sum1,
mclMtimes(
mclIntArrayRef2(
mclVv(gamag, "gamag"), v_2, v_),
mclMinus(
mclVv(gama_sum, "gama_sum"),
mclMrdivide(
_mxarray5_,
mlfLog(
mclMtimes(
_mxarray6_, mclVa(Pe, "Pe")))))));
mclIntArrayAssign1(
&Cbitvector1,
mlfLog2(NULL, mclVv(sum1, "sum1")),
v_2);
}
if (v_2 == e_2) {
break;
}
v_2 += i_;
}
mlfAssign(&q, mlfScalar(v_2));
}
}
{
int v_3 = mclForIntStart(1);
int i_ = 1;
int e_3 = mclForIntIntEnd(v_3, i_, mclVv(K, "K"));
if (e_3 == mclIntMin()) {
mlfAssign(&s, _mxarray2_);
} else {
for (; ; ) {
if (mclLtBool(
mclIntArrayRef1(
mclVv(Cbitvector1, "Cbitvector1"), v_3),
_mxarray0_)) {
mclIntArrayAssign1(
&Cbitvector1, _mxarray1_, v_3);
}
if (mclScalarToBool(
mclGe(
mclIntArrayRef1(
mclVv(Cbitvector1, "Cbitvector1"), v_3),
_mxarray0_))
&& mclScalarToBool(
mclLt(
mclIntArrayRef1(
mclVv(Cbitvector1, "Cbitvector1"),
v_3),
_mxarray7_))) {
mclIntArrayAssign1(
&Cbitvector1, _mxarray3_, v_3);
}
if (mclScalarToBool(
mclGe(
mclIntArrayRef1(
mclVv(Cbitvector1, "Cbitvector1"), v_3),
_mxarray7_))
&& mclScalarToBool(
mclLt(
mclIntArrayRef1(
mclVv(Cbitvector1, "Cbitvector1"),
v_3),
_mxarray6_))) {
mclIntArrayAssign1(
&Cbitvector1, _mxarray8_, v_3);
}
if (mclGeBool(
mclIntArrayRef1(
mclVv(Cbitvector1, "Cbitvector1"), v_3),
_mxarray6_)) {
mclIntArrayAssign1(
&Cbitvector1, _mxarray9_, v_3);
}
if (v_3 == e_3) {
break;
}
v_3 += i_;
}
mlfAssign(&s, mlfScalar(v_3));
}
}
mclArrayAssign2(
Cbitvector,
mclVv(Cbitvector1, "Cbitvector1"),
mlfCreateColonIndex(),
mlfScalar(v_));
mlfAssign(
&poweralloctvector1,
mlfZeros(mclVv(K, "K"), _mxarray0_, NULL));
{
int v_4 = mclForIntStart(1);
int i_ = 1;
int e_4 = mclForIntIntEnd(v_4, i_, mclVv(K, "K"));
if (e_4 == mclIntMin()) {
mlfAssign(&t, _mxarray2_);
} else {
for (; ; ) {
if (mclLtBool(
mclIntArrayRef2(
mclVv(gamag, "gamag"), v_4, v_),
mclVv(right, "right"))) {
mclIntArrayAssign1(
&poweralloctvector1, _mxarray1_, v_4);
} else {
mlfAssign(
&sumsum1,
mclPlus(
_mxarray0_,
mclMtimes(
mclMrdivide(
mlfLog(
mclMtimes(
_mxarray6_, mclVa(Pe, "Pe"))),
_mxarray5_),
mclMinus(
mclMrdivide(
_mxarray0_,
mclIntArrayRef2(
mclVv(gamag, "gamag"), v_4, v_)),
mclVv(gama_sum, "gama_sum")))));
mclIntArrayAssign1(
&poweralloctvector1,
mclMtimes(
mclVv(Saverage, "Saverage"),
mclVv(sumsum1, "sumsum1")),
v_4);
}
if (v_4 == e_4) {
break;
}
v_4 += i_;
}
mlfAssign(&t, mlfScalar(v_4));
}
}
mlfAssign(
&poweralloctvector1,
mclMrdivide(
mclMtimes(
mclVv(poweralloctvector1, "poweralloctvector1"),
mclMtimes(
mclVa(N_carrier, "N_carrier"),
mclVv(Saverage, "Saverage"))),
mclMtimes(
mlfSum(
mclVv(poweralloctvector1, "poweralloctvector1"), NULL),
mclMrdivide(mclVv(N, "N"), mclVv(K, "K")))));
mclArrayAssign2(
&poweralloctvector,
mclVv(poweralloctvector1, "poweralloctvector1"),
mlfCreateColonIndex(),
mlfScalar(v_));
if (v_ == e_) {
break;
}
++v_;
}
mlfAssign(&i, mlfScalar(v_));
}
}
mclValidateOutput(
poweralloctvector,
1,
nargout_,
"poweralloctvector",
"bitandpoweralloct2");
mclValidateOutput(
*Cbitvector, 2, nargout_, "Cbitvector", "bitandpoweralloct2");
mclValidateOutput(*gama, 3, nargout_, "gama", "bitandpoweralloct2");
mxDestroyArray(K);
mxDestroyArray(N);
mxDestroyArray(gamag);
mxDestroyArray(flag);
mxDestroyArray(An);
mxDestroyArray(pow);
mxDestroyArray(Saverage);
mxDestroyArray(i);
mxDestroyArray(k);
mxDestroyArray(right);
mxDestroyArray(p);
mxDestroyArray(gama_sum);
mxDestroyArray(Cbitvector1);
mxDestroyArray(q);
mxDestroyArray(sum1);
mxDestroyArray(s);
mxDestroyArray(poweralloctvector1);
mxDestroyArray(t);
mxDestroyArray(sumsum1);
mxDestroyArray(N_ofdm);
mxDestroyArray(Pe);
mxDestroyArray(SNR);
mxDestroyArray(Hk);
mxDestroyArray(groupnumber);
mxDestroyArray(N_carrier);
mclSetCurrentLocalFunctionTable(save_local_function_table_);
return poweralloctvector;
/*
*
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -