How to assign a structure with fields (incl the values in the fields) as an output in function?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
lou
el 21 de Jun. de 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 comentarios
Jos (10584)
el 21 de Jun. de 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.
Respuesta aceptada
Jos (10584)
el 21 de Jun. de 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 comentarios
Jos (10584)
el 21 de Jun. de 2016
well done! Field names like Name and Credit are good names, of course.
Stephen23
el 21 de Jun. de 2016
Editada: Stephen23
el 21 de Jun. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Structures en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!