How to solve too many arguments error in the bold part
1 次查看(过去 30 天)
显示 更早的评论
clc
clear all
close all
L=12; % IRS
element=10;
lambda=0.06;
l=lambda/2;
K=4;
radius=15;
X0=0; % x-coordinate of Centre of the circle
Y0=0; % y-coordinate of centre of circle
%% Users
t = 2*pi*rand(K,1);
R = radius*sqrt(rand(K,1));
x_u = X0 + R.*cos(t); % X-coordinate of the Users
y_u = Y0 + R.*sin(t); % Y-coordinate of the Users
%% Base stations
x_b=[0.7298; 3; -5.23; 11.86]; % x coordinate of base station
y_b=[12.48; -1.497; -6.139; -3.23]; %y coordiante of base station
%% IRS Elements
X3=[-7.655; -6.189; -3.251; 2.926; 6.534; 10.79; 5.203; -4.465; 1.42; -8.66; -0.8748; 6.534] ;
Y3=[1.393; 10.42; 6.639; 5.821; 8.425; 2.924; 1.139; 0.7508; -7.917; -6.928; -10.01; -7.03];
p=0;
%% loop for the elements of irs
N=100:100:300;
NN = length(N) ;
% x_e = zeros(element,NN/10,L,NN);
% y_e = zeros(element,NN/10,L,NN);
for n = 1:length(N)
nn=N(n);
for i=1:L
for j=1:element
for k=1:(nn)/(10)
x3(j,k,i) = X3(i,1) + p;
y3(j,k,i) = Y3(i,1);
p=k*l; % Each time lambda is added to the x-coordinate
x_e(j,k,i,n) = x3(j,k,i); % X coordinate of an element of IRS for plotting
y_e(j,k,i,n)= y3(j,k,i); % Y coordinate of an element of IRS for plotting
end
p=0;
Y3(i,1) = Y3(i,1) + l;
end
% plot(x3,y3,'bo','HandleVisibility','off')
end
end
%% Distance compution between IRSs
for iteration = 1:length(N) % Iterations
nn=N(n);
for irs1 = 1:(L-1) % IRS1 to be multiplied
for j1 = 1:element % row of 1st IRS
for k1 = 1:(nn/10) % column of 1st IRS
for irs2 = (irs1+1):L % IRS2 to be multiplied
for j2 = 1:element % row of 2nd IRS
for k2 = 1:(nn/10) % column of 2nd IRS
de_e(irs1,j1,k1,irs2,j2,k2,iteration) = sqrt(((x_e(j2,k2,irs2,iteration)-x_e(j1,k1,irs1,iteration))^2)+((y_e(j2,k2,irs2,iteration)-y_e(j1,k1,irs1,iteration))^2));
end
end
end
end
end
end
end
%% Distance computation between IRSs and Base Station
for s=1:4
% error at h_eb
d_eb(:,:,:,:,s) = sqrt(((x_e-x_b(s,1)).^2)+((y_e-y_b(s,1)).^2)); % distance between base station and IRS
h_eb(:,:,:,:,s)=(sqrt(alpha)./(d_eb(:,:,:,:,s))).*(exp(-1j*(2*pi*d_eb(:,:,:,:,s))./lambda)); % channel between Irs and base station
% distance between user and IRS's
d_ue(:,:,:,:,s)=sqrt(((x_u(s,1)-x_e).^2)+((y_u(s,1)-y_e).^2)); % distance
h_ue(:,:,:,:,s)=(sqrt(alpha)./(d_ue(:,:,:,:,s))).*(exp(-1j*(2*pi*d_ue(:,:,:,:,s))/lambda));% channel between User and IRS
%
end
0 个评论
回答(1 个)
Geoff Hayes
2022-2-1
@Maimoona Asad - I see the same error when I run your code
Error using alpha
Too many output arguments.
Error in myfunction (line 71)
h_eb(:,:,:,:,s)=(sqrt(alpha)./(d_eb(:,:,:,:,s))).*(exp(-1j*(2*pi*d_eb(:,:,:,:,s))./lambda)); % channel
between Irs and base station
. This is because the alpha function is being called which doesn't have any output parameters and so the error makes sense given that the code is trying to call the square root of that output. I don't think you mean to be using alpha here. Perhaps you mean this to be a variable instead..one that isn't defined in your code or maybe one that has a different name (that is defined in your code).
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Biological and Health Sciences 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!