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

1 次查看(过去 30 天)
%% 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

请先登录,再进行评论。

回答(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 中查找有关 Multidimensional Arrays 的更多信息

标签

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by