For loop assignment problem

1 visualización (últimos 30 días)
Cary
Cary el 5 de Nov. de 2015
Comentada: Cary el 5 de Nov. de 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.

Respuesta aceptada

Adam
Adam el 5 de Nov. de 2015
Editada: Adam el 5 de Nov. de 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.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by