How do you set a default reference for structure fields.
Ältere Kommentare anzeigen
Suppose I have the structure "structure1" that has 3 fields a, b, c. I pass this structure to a function to perform some operations. I would like to setup the function as follows
function out = function(structure1)
% set structure 1 as the default field reference
?command? structure1
out = a + b*c;
I am trying to avoid
out = structure1.a + structure1.b*structure.c;
or
a = structure1.a;
b = structure1.b;
c = structure1.c;
out = a+b*c;
I seem to remember there was a command that did this in release 13 but I just cannot remember the command itself.
Thanks for your help,
Eric
1 Kommentar
Azzi Abdelmalek
am 18 Jun. 2015
What is your question?
Akzeptierte Antwort
Weitere Antworten (1)
You could use struct2cell and deal to allocate those field values to separate variables, but this depends on the order in which the fields were defined:
>> S.a = 1;
>> S.b = 2;
>> S.c = 3;
>> C = struct2cell(S);
>> [a,b,c] = deal(C{:})
a =
1
b =
2
c =
3
The most robust solution would be as you wrote in your question:
a = structure1.a;
b = structure1.b;
c = structure1.c;
1 Kommentar
Eric
am 19 Jun. 2015
Kategorien
Mehr zu Structures finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!