For loop assignment problem

2 visualizzazioni (ultimi 30 giorni)
Cary
Cary il 5 Nov 2015
Commentato: Cary il 5 Nov 2015
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.

Risposta accettata

Adam
Adam il 5 Nov 2015
Modificato: Adam il 5 Nov 2015
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.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by