The Loops in the first picture are required, the description is below

조회 수: 1 (최근 30일)
Matthew Worker
Matthew Worker 2021년 6월 28일
편집: Rena Berman 2021년 12월 16일
%% Suppose I have W and Theta, k=1:K .. K=(any value) let say 10
%%
Alfa_k=zeros(1,k);
Alfa_i=zeros(1,k);
Angle_h_w=zeros(1,k);
Angle_g_h_w=zeros(1,k);
n0=zeros(1,k);
for t_1=1:k
Alfa_k(t_1) = 1/(abs(H(t_1,:)*W(:,t_1)));
Angle_h_w(t_1) = angle(H(t_1,:)*W(:,t_1));
Alfa_i(t_1) = 0;
for t_2=1:k
Alfa_i(t_1) = Alfa_i(t_1) + 1/(abs(H(t_2,:)*W(:,t_2)));
end
Alfa_i(t_1) = Alfa_i(t_1) - Alfa_k(t_1); % Sum of Alfa_i
end
L_k = n*(Alfa_k./Alfa_i); % Number of IRS Elements Assigned to UE ..
% Total IRS Elements * Proportion of IRS Elements
r = n-(sum(L_k)); %The Remaining IRS Elements ..
% Are Assigned to The Weakest UE
[argvalue, argmax] = max(Alfa_k);
L_k0=L_k(argmax);
L_k0 = L_k0+r;
[Alfa_m,idx]= sort(Alfa_k, 'descend'); % sort UE
L_m = sort(L_k, 'descend');
F = F(idx,:); % sort the whole matrix using the sort idx
W = W(:,idx); % sort the whole matrix using the sort idx
for t_3=1:k
n0(t_3)=(abs(F(t_3,:)*G*W(:,t_3)))
Angle_g_h_w(t_3) = angle(F(t_3,:)*G*W(:,t_3))
end
[argval, arg_max] = max(n0)
Theta_k = -Angle_h_w-Angle_g_h_w
  댓글 수: 3
Image Analyst
Image Analyst 2021년 12월 15일
편집: Image Analyst 2021년 12월 15일
Original question attached
%% Suppose I have W and Theta, k=1:K .. K=(any value) let say 10
%%
Alfa_k=zeros(1,k);
Alfa_i=zeros(1,k);
Angle_h_w=zeros(1,k);
Angle_g_h_w=zeros(1,k);
n0=zeros(1,k);
for t_1=1:k
Alfa_k(t_1) = 1/(abs(H(t_1,:)*W(:,t_1)));
Angle_h_w(t_1) = angle(H(t_1,:)*W(:,t_1));
Alfa_i(t_1) = 0;
for t_2=1:k
Alfa_i(t_1) = Alfa_i(t_1) + 1/(abs(H(t_2,:)*W(:,t_2)));
end
Alfa_i(t_1) = Alfa_i(t_1) - Alfa_k(t_1); % Sum of Alfa_i
end
L_k = n*(Alfa_k./Alfa_i); % Number of IRS Elements Assigned to UE ..
% Total IRS Elements * Proportion of IRS Elements
r = n-(sum(L_k)); %The Remaining IRS Elements ..
% Are Assigned to The Weakest UE
[argvalue, argmax] = max(Alfa_k);
L_k0=L_k(argmax);
L_k0 = L_k0+r;
[Alfa_m,idx]= sort(Alfa_k, 'descend'); % sort UE
L_m = sort(L_k, 'descend');
F = F(idx,:); % sort the whole matrix using the sort idx
W = W(:,idx); % sort the whole matrix using the sort idx
for t_3=1:k
n0(t_3)=(abs(F(t_3,:)*G*W(:,t_3)))
Angle_g_h_w(t_3) = angle(F(t_3,:)*G*W(:,t_3))
end
[argval, arg_max] = max(n0)
Theta_k = -Angle_h_w-Angle_g_h_w
Rena Berman
Rena Berman 2021년 12월 16일
(Answers Dev) Restored edit

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

답변 (1개)

Walter Roberson
Walter Roberson 2021년 6월 29일
Example with your second set of code. The array sizes are constructed to be consistent with your code
k = 5;
m = 3;
M = 7;
H = randi(9, k, M)
H = 5×7
6 7 4 5 2 8 4 6 1 6 7 2 1 9 8 9 7 6 7 5 1 2 3 7 6 1 1 6 6 4 7 4 3 4 8
W = randi(9, M, k)
W = 7×5
2 3 2 1 9 6 4 6 1 3 5 7 9 3 8 9 1 9 2 9 5 9 9 9 7 2 8 8 8 2 6 7 1 9 3
n = rand()
n = 0.0108
F = randi(9, k, m)
F = 5×3
2 4 5 2 9 4 7 7 8 5 3 5 2 5 2
G = randi(9, m, M)
G = 3×7
1 2 3 3 1 1 5 2 7 2 9 8 3 8 2 1 4 8 5 4 8
Alfa_k=zeros(1,k);
Alfa_i=zeros(1,k);
Angle_h_w=zeros(1,k);
Angle_g_h_w=zeros(1,k);
n0=zeros(1,k);
for t_1=1:k
Alfa_k(t_1) = 1/(abs(H(t_1,:)*W(:,t_1)));
Angle_h_w(t_1) = angle(H(t_1,:)*W(:,t_1));
Alfa_i(t_1) = 0;
for t_2=1:k
Alfa_i(t_1) = Alfa_i(t_1) + 1/(abs(H(t_2,:)*W(:,t_2)));
end
Alfa_i(t_1) = Alfa_i(t_1) - Alfa_k(t_1); % Sum of Alfa_i
end
L_k = n*(Alfa_k./Alfa_i); % Number of IRS Elements Assigned to UE ..
% Total IRS Elements * Proportion of IRS Elements
r = n-(sum(L_k)); %The Remaining IRS Elements ..
% Are Assigned to The Weakest UE
[argvalue, argmax] = max(Alfa_k);
L_k0=L_k(argmax);
L_k0 = L_k0+r;
[Alfa_m,idx]= sort(Alfa_k, 'descend'); % sort UE
L_m = sort(L_k, 'descend');
F = F(idx,:); % sort the whole matrix using the sort idx
W = W(:,idx); % sort the whole matrix using the sort idx
for t_3=1:k
n0(t_3)=(abs(F(t_3,:)*G*W(:,t_3)))
Angle_g_h_w(t_3) = angle(F(t_3,:)*G*W(:,t_3))
end
n0 = 1×5
1903 0 0 0 0
Angle_g_h_w = 1×5
0 0 0 0 0
n0 = 1×5
1903 2771 0 0 0
Angle_g_h_w = 1×5
0 0 0 0 0
n0 = 1×5
1903 2771 2025 0 0
Angle_g_h_w = 1×5
0 0 0 0 0
n0 = 1×5
1903 2771 2025 1674 0
Angle_g_h_w = 1×5
0 0 0 0 0
n0 = 1×5
1903 2771 2025 1674 3997
Angle_g_h_w = 1×5
0 0 0 0 0
[argval, arg_max] = max(n0)
argval = 3997
arg_max = 5
Theta_k = -Angle_h_w-Angle_g_h_w
Theta_k = 1×5
0 0 0 0 0
  댓글 수: 4
Matthew Worker
Matthew Worker 2021년 6월 29일
thank you again, do you know how to make this code compatible with the first picture, because that is the main problem for me.
Walter Roberson
Walter Roberson 2021년 6월 29일
No, I do not know how to make it compatible with the first picture. If I were coding it, I would start over without your existing code.

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

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

태그

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by