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

1 vue (au cours des 30 derniers jours)
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.

Réponse acceptée

nas illmatic
nas illmatic le 18 Oct 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.

Plus de réponses (2)

James Tursa
James Tursa le 18 Oct 2015
Modifié(e) : James Tursa le 18 Oct 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 le 18 Oct 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

Catégories

En savoir plus sur Variables dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by