Assign value to array structure

15 Ansichten (letzte 30 Tage)
Peter Borda
Peter Borda am 19 Jun. 2015
Bearbeitet: Stephen23 am 19 Jun. 2015
Hi Everybody! I have an array of let's say 100 elements, each element is the same structure with like 10 fields. What I would like to do is to generate an array - cell or numeric - of the same length as the structure array and assign each elements to a specific field of the individual structures. Here is the solution with for loop, I'd like to make the same without looping:
BaseArray = struct('field_1',[],'field_c2',[],'field__3',[]); % struct to be used
StructArray(100) = BaseArray; % initialize
ValuesToAssign = rand(100);
for k = 1:length(StructArray)
StructArray(k).field_1 = ValuesToAssign(k);
end
Any advice?

Akzeptierte Antwort

Titus Edelhofer
Titus Edelhofer am 19 Jun. 2015
Hi,
this should work:
valuesCell = num2cell(ValuesToAssign);
[StructArray.field_1] = valuesCell{:};
Titus
  2 Kommentare
Peter Borda
Peter Borda am 19 Jun. 2015
Great, thanks! Drastic speed improvement as expected!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by