Using structures with Functions
5 次查看(过去 30 天)
显示 更早的评论
I have a structure that I am using to simplify the workspace.
I have a structure called Condition defined so that I have multiple variables and each variable has an array for multiple conditions
Condition.Title(1) = {'test 1'};
Condition.Variable_a(1) = 1000
Condition.Variable_b(1) = 10
Condition.Title(2) = {'test 2'};
Condition.Variable_a(2) = 2000
Condition.Variable_b(2) = 20
such that
Condition =
Title: {'test 1' 'test 2'}
Variable_a: [1000 2000
Variable_b: [10 20]
I want to feed all the variables of a single condition into a function so I tried using this
Condition(1)
I hoped this would give me Title(1), Variable_a(1), and Variable_b(1) but it just gives me the entire stucture as if I had no index.
There are a number of variables so I don't want to enter each variable individually if I can avoid it
Is there a way to call all of the variables into a function with only a single column from the arrays?
0 个评论
采纳的回答
Stephen23
2022-8-1
编辑:Stephen23
2022-8-1
Rather than defining a scalar structure containing arrays, it looks like you should be using a non-scalar structure:
For example:
Condition(1).Title = 'test 1';
Condition(1).Variable_a = 1000;
Condition(1).Variable_b = 10;
Condition(2).Title = 'test 2';
Condition(2).Variable_a = 2000;
Condition(2).Variable_b = 20;
Condition(1)
Condition(2)
Note that you can use comma-separated lists to obtain and assign data to the structure:
更多回答(1 个)
Matt J
2022-8-1
编辑:Matt J
2022-8-1
@Stephen23's answer might be what you are looking for, but if you need the struct in scalar form for some reason, then the attached utility will split the fields for one-time purposes.
Condition.Title(1) = {'test 1'};
Condition.Variable_a(1) = 1000;
Condition.Variable_b(1) = 10;
Condition.Title(2) = {'test 2'};
Condition.Variable_a(2) = 2000;
Condition.Variable_b(2) = 20;
ConditionArray=arrayify_struct(Condition);
ConditionArray(1)
ConditionArray(2)
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!