How to assign a structure with fields (incl the values in the fields) as an output in function?
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
Jos (10584)
2016 年 6 月 21 日
do not use a keyword or function name ( _ struct_) as a variable name. You can easily avoid this using a variable name like MyStruct.
採用された回答
Jos (10584)
2016 年 6 月 21 日
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 件のコメント
Stephen23
2016 年 6 月 21 日
編集済み: Stephen23
2016 年 6 月 21 日
@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.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!