error Structure assignment to non-structure object

Dear,
I am a beginner in programming matlab. In looking around, I have come across a function which looks like:
for j=1: FUE_Num_eachFemto
for i=1:HeNB_Num/4 %Generates Femtocell 1 to 4
x=rand(1)*10; %Generates random variables
y=rand(1)*10; %Generates random variables
FAP(i).location_x=x; %Femtocell Access Point location
end
end
i have problem "FAP(i).location_x=x;" error Structure assignment to non-structure object
thanks!

2 个评论

Marwen - you may need to show more of your code. Even with dummy values for FUE_Num_eachFemto and HeNB_Num, I don't observe any problem with the above code.
Dear, this is my code with values for FUE_Num and HeNB_Num
clc;
clear ;
HeNB_Num=16;
FUE_Num_eachFemto=1; %Number of UE in each unit
Throughput5_total1=1;
Throughput3_total1=1;
for HeNB_Num=4:4:16
%Throughput_total=zeros(4);
clear FAP;
FAP = zeros(1,HeNB_Num/4);
tic;
for j=1: FUE_Num_eachFemto
for i=1:HeNB_Num/4 %Generates Femtocell 1 to 4
x=rand(1)*10; %Generates random variables
y=rand(1)*10; %Generates random variables
FAP(i).location_x=x; %Femtocell Access Point location
FAP(i).location_y=y+(i-1)*10;
thanks!

请先登录,再进行评论。

回答(1 个)

Error comes in here. FAP(i).location_x=x; FAP is not a structure. It is a non structure and it is already initialized. Check what is FAP. Or try to put different name for instead of FAP. See the below error:
K =rand(10) ;
K(1).location = 10 ;
Structure assignment to non-structure object.
Error in impulse (line 4)
K(1).location = 10 ;
K is a matrix, I tried to associate a filed to it. As K is not a structure, error popped out.

4 个评论

You have initialized FAP as a matrix.
FAP = zeros(1,HeNB_Num/4);
And making it a structure. Instead of zeros make it a structure.
FAP = struct;
Dear, When i remove FAP
FAP = zeros(1,HeNB_Num/4);
other problem for syntaxe
FAP(i).location_x=x; %Femtocell Access Point location
FAP(i).location_y=y+(i-1)*10;
error ///// the variable 'FAP' appears to change size on every loop iteration (within a script).Consider preallocating for speed
Consider preallocating a variable or array before
entering the loop by using zeros, ones, cell, or a
similar function. Preallocating avoids the need for
MATLAB to copy the data from one array to another
inside the loop. For examples of code that do and do *
not preallocate an array, see “Preallocating Arrays”
how to solve this problem
thanks!!
It is not throwing any error in my pc. What version you are using?

请先登录,再进行评论。

类别

帮助中心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!

Translated by