Structure Assginment

8 visualizzazioni (ultimi 30 giorni)
Umit
Umit il 8 Mag 2012
I need a better approach to assign matrix to a structure. Currently I have
A = 5 by 1 struct with Loc & Err variables, A(1:5).Loc & A(1:5).Err,
I have Values matrix 5 by 6 where Loc info stored.
My code;
for i=1:5
A(i).Loc = Values(i,:)
end
Is there easy way of assignment. I have a very complex structure, this is very simplified version of it. Any ideas??
  1 Commento
Daniel Shub
Daniel Shub il 8 Mag 2012
This seems pretty easy to understand for me. What do you mean by easy?

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 8 Mag 2012
Try this:
vcell = mat2cell(Values, ones(1, size(Values,1)), size(Values,2));
[A.Loc] = vcell{:};
  4 Commenti
Daniel Shub
Daniel Shub il 8 Mag 2012
If there are lots of fields you might want to consider cell2struct
Umit
Umit il 8 Mag 2012
It works, thank you. This is what I want

Accedi per commentare.

Più risposte (1)

Jan
Jan il 8 Mag 2012
There is no easy way to assign a very complicated structure.
Using a loop is most likely the easiest and most efficient method, especially if you use implicite pre-allocation by running the loop from the end to the start.

Categorie

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

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by