Structure Assignment to Non-Structure Object Error

조회 수: 10 (최근 30일)
Mary
Mary 2013년 6월 10일
댓글: Walter Roberson 2017년 4월 4일
I'm trying to reassign structs from a loaded .mat file to a new .mat file.
In a loop I have the new struct I would like to load the information into equating the struct from the older .mat file
The code looks something like this
files = dir('*.mat')
for i= 1:numel(files)
fileName=files(i).name
load (fileName)
newstruct(1).struct = oldstruct.data
save (newstruct)
end
any ideas why I am getting this error?
  댓글 수: 5
Sunil Kumar Patel
Sunil Kumar Patel 2017년 4월 4일
편집: Walter Roberson 2017년 4월 4일
if(C(i)<=(p/(1-p*mod(r,round(1/p)))))
countCHs=countCHs+1;
S(i).type=1;
C(cluster).type=S(i).type;
C(cluster).xd=S(i).xd;
C(cluster).yd=S(i).yd;
C(cluster).id=i;
C(cluster).E=S(i).E;
dis(cluster)=sqrt((S(n+1).xd-S(i).xd)^2+(S(n+1).yd-S(i).yd)^2);
cluster=cluster+1;
subplot(2,2,ss), plot(S(i).xd,S(i).yd,'r*');
X=[S(i).xd,S(n+1).xd]; Y=[S(i).yd,S(n+1).yd];
for j=1:1:n
if distance(i,j)<=R && j~=i && S(j).type==0
S(j).type=3;
end
end
I am also facing same problem in this code
Walter Roberson
Walter Roberson 2017년 4월 4일
Sunil Kumar Patel:
In the line
if(C(i)<=(p/(1-p*mod(r,round(1/p)))))
the comparison involving C(i) can only work if C(i) is numeric.
Then a few lines later you use
C(cluster).type=S(i).type;
which tries to use C as a structure.

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

채택된 답변

Walter Roberson
Walter Roberson 2013년 6월 11일
The first argument to save() should be a filename. You are passing a structure instead.

추가 답변 (0개)

카테고리

Help CenterFile 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