Borrar filtros
Borrar filtros

How to pull an item and save it into an array/matrix from a Cell that is composed of a Struct

1 visualización (últimos 30 días)
I have a myVar which is a 1x27 Cell, where each Cell is a Struct. Within the Struct is a Field called myPullItem that I want to grab. However 'pull' with a '(i)' afterwards to increment the array produces an error; when I remove the (i), it only provides me the last cell's Struct myPullItem
for i=1:length(myVar)
pull(i) = myVar{i}.myStruct.myPullItem
end
Error: In an assignment A(:) = B, the number of elements in A and B must be the same.
My objective is to save each field. I am attempting to do this by incrementing through each cell of Structs and saving it.
What am I doing wrong? Thx.

Respuesta aceptada

nas illmatic
nas illmatic el 18 de Oct. de 2015
I think I got it. Apparently you need to define 'pull' first. So, you need to define it as
pull=cell(1)
And then it works.

Más respuestas (2)

James Tursa
James Tursa el 18 de Oct. de 2015
Editada: James Tursa el 18 de Oct. de 2015
pull(i) is likely a scalar, while myVar{i}.myStruct.myPullItem is likely not a scalar. You are trying to stuff multiple values into a scalar, hence the error.
What is myVar{i}.myStruct.myPullItem? Once we know the size we can offer suggestions (e.g., using another cell array, or perhaps an nD array, etc). E.g., something like this:
pull{i} = myVar{i}.myStruct.myPullItem;
or maybe this:
pull(:,:,i) = myVar{i}.myStruct.myPullItem;
Again, can't tell for sure what will work for you until we know what the rhs is.

nas illmatic
nas illmatic el 18 de Oct. de 2015
I tried
pull{i} = myVar{i}.myStruct.myPullItem;
but got Error: Cell contents assignment to a non-cell array object.
And,
pull(:,:,i) = myVar{i}.myStruct.myPullItem;
resulted in Error: Subscripted assignment dimension mismatch.
Types:
  • The myPullItem is a 1x16 char field
  • myStruct is a 1x1 struct with 1 field
  • myVar is a 1x27 cell where each cell is a struct

Categorías

Más información sobre Data Type Identification 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