This is a part of a code and I want to add something to it, description below
조회 수: 1 (최근 30일)
이전 댓글 표시
%This is a part of a code and I want to add something to it so instead of Deleting all the Users row from Heff that corresponding to P=0 in each itretion, I want to delete only the first row that corresponding to P=0 in each itretion
do_Water_filling = 1;
while do_Water_filling
W = pinv(Heff'); %Precoding Matrix
W_bar = ((W./sqrt(sum(abs(W.^2),1))));
D_Matrix = Heff'*W_bar; %Diagonal Matrix
D_Square = (abs(diag(D_Matrix))').^2; %Channel Gains
P = waterfill(Pt,Pn./D_Square);
if any(P==0)
Heff(:,P==0) = []; %Delete User Row
else
do_Water_filling = 0;
end
end
댓글 수: 5
채택된 답변
Mohammad Sami
2021년 9월 17일
In your code
Heff(:,P==0) = []; %Delete User Row
This will actually delete columns not rows in Heff. Not sure if that is what you intended.
Anyways to delete only the first Row / Column in Heff, just use find function to return only the first index.
Heff(:,find(P==0,1)) = []; %find the first index of p == 0 and delete the corresponding col in Hef
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!