How to assign a structure with fields (incl the values in the fields) as an output in function?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
lou
am 21 Jun. 2016
Bearbeitet: Stephen23
am 21 Jun. 2016
Hello,
My question is the following: How to assign a structure with fields (incl the values in the fields) as an output in function?
Let's say the code is something like this
function output =example(x)
struct(1).field1=x+1
struct(2).field1=x+2
struct(1).field2=x/5
struct(2).field2=x/6
output=struct(1:2)
_________________
How do I assign the fields with their values to the output variable. In this example here I have two fields, but in the actual function I have a lot more and all of these fields have values which I would like to use later in the workspace.
Any ideas?
2 Kommentare
Jos (10584)
am 21 Jun. 2016
do not use a keyword or function name ( _ struct_) as a variable name. You can easily avoid this using a variable name like MyStruct.
Akzeptierte Antwort
Jos (10584)
am 21 Jun. 2016
function Sout = myfunction(x)
S(1).field(1) = x ;
S(2).field(2) = 2*x ;
% etc.
Sout = S ; % just copy
% end of my function
Do not use names like field1, field2, but use an array (of doubles, cells or even structs)!!!
4 Kommentare
Stephen23
am 21 Jun. 2016
Bearbeitet: Stephen23
am 21 Jun. 2016
@lou: you don't even need to make it that complicated. Simply put the name of the structure as the output argument, without assigning it to another variable:
function S = myFun()
S.name = ...
S.age = ...
end
It is not required to do output = S; anywhere.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Structures finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!