I have a struct with 85 fields. I want to copy data from the fields into a matrix called "one". Here is my code:
one=nan(85,2);
fields=fieldnames(s);
for i = 1:numel(fields)
len=find(s.(fields{i})==0)/4;
one(i)=s.(fields{i})(len-1,3:4);
end
This generates the "in an assignment A(:) = B" error. If I remove the subscript 'i' from 'one' it works, but then it overwrites the data on each loop, instead of storing it.

 Akzeptierte Antwort

Adam
Adam am 5 Nov. 2015
Bearbeitet: Adam am 5 Nov. 2015

0 Stimmen

one(i,:)=s.(fields{i})(len-1,3:4);
should work if I understand the problem correctly. Judging by your pre-sizing I assume the right-hand side of that equation is a 1-by-2 array which needs to be assigned to something of the same size on the left-hand side using row and column indices.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Gefragt:

am 5 Nov. 2015

Kommentiert:

am 5 Nov. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by