Info

This question is closed. Reopen it to edit or answer.

could anyone help me how to overcome the following error

2 views (last 30 days)
G=rand(50,100)
C=rand(50,100)
N_G=15;%No of group
R = cell(N_G,1)
sumR = cell(N_G,1)
for d=1:1:N_G
%------------------------------------------
% select No of UE randomly
%------------------------------------------
if d==N_G
sz=length(C(:,1))
e=sz
else
if d==1
e=randi([1 9])% select No of UE randomly
else
sz=length(C(:,1))
sz=ceil(sz/2)
e=randi([1 sz])% select No of UE randomly
end
end
%------------------------------------------
idx=randsample(1:size(C,1),e);
%------------------------------------------
% Getting arry G and C from random index
%------------------------------------------
for s=1:length(idx)
X(s,:) = C(idx(s),:)
Y(s,:) = G(idx(s),:)
Xi(s)=find(X(s,:))
end
X=[X(1:s,:)]
Y=[Y(1:s,:)]
%------------------------------------------
% Replacing
%------------------------------------------
non_0=sum(X)
non_0=repmat(non_0,s,1)
S=X
S(non_0 & X==0)=Y(non_0 & X==0);
Z{d}=S
%-----------------------------------------------------
% deleting the first output from the main array
%-----------------------------------------------------
G(idx,:) = []
C(idx,:) = []
end
W=[Z{1};Z{2};Z{3};Z{4};Z{5};Z{6};Z{7};Z{8};Z{9};Z{10};Z{11};Z{12};Z{13};Z{14};Z{15}]
If i run the following code i am getting Error (line 36) Xi(s)=find(X(s,:)) In an assignment A(I) = B, the number of elements in B and I must be the same.
Could anyone help me to solve the following issue.

Answers (1)

Walter Roberson
Walter Roberson on 7 Jan 2018
Edited: Walter Roberson on 7 Jan 2018
You have
for s=1:length(idx)
X(s,:) = C(idx(s),:)
Y(s,:) = G(idx(s),:)
Xi(s)=find(X(s,:))
end
C has been assigned a 50 x 100 array. s is a scalar. idx(s) is a scalar. So C(idx(s),:) is going to be exactly one row out of C, so X(s,:) is going to be 1 x 100.
Now at the start, C is all non-zero because rand() never generates 0. So X(s,:) is going to start out all non-zero, so find(X(s,:)) is going to return all 100 indices because they are all non-zero locations. You try to assign those 100 indices to Xi(s) but Xi(s) only has room for a scalar.
You never use Xi again, so there is no obvious reason why you are computing Xi.

This question is closed.

Community Treasure Hunt

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

Start Hunting!