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!