How to assign array values to object.object.property at once using deal?

18 visualizzazioni (ultimi 30 giorni)
I know that it is possible to assign the values of an array to object.property using deal(). Is it possible to do such thing for object.object.property? I am specifically working with SimulationInput objects, where the variables property of this object is itself an object and has a property named value, and I want to do something like the following:
SimIn = repmat (Simulink.SimulationInput, [NumRows, NumCols]);
[SimIn] = SimIn.setVariable ('VariableName', 0);
SimIn.Variables.Value = Data(:);
or
[SimIn(:).Variables.Value] = deal (Data(:));

Risposta accettata

Matt J
Matt J il 13 Set 2020
Modificato: Matt J il 13 Set 2020
No, you would have to do it in 2 steps,
[Variables.Value] = deal (Data(:));
[SimIn(:).Variables] = deal (Variables);
  1 Commento
Matt J
Matt J il 13 Set 2020
Modificato: Matt J il 13 Set 2020
If you find you need to do this frequently, however, it probably means your choice of data organization is sub-optimal for your problem. You should probably have array-valued properties, rather than an array of objects.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Multidimensional Arrays 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