match structures by table
显示 更早的评论
Dear All, suppose you have two structures, A and B, where
A.a
A.b
A.c
and
B.1
B.2
B.3
Furthermore you have a table, which matches A to B, for example
1 b
2 a
3 c
bsed on this information, I would like to compute stuff using A and B. Both structures have the same number of fiels (which can all be uniquley matched between A and B). I need something like:
for all *table* rows i:
% computation using A.i, B.i;
end
Is there a good way to solve this in Matlab?
Thanks in advance!
采纳的回答
更多回答(1 个)
Guillaume
2016-5-24
Probably the simplest way is to create a function with two inputs, the two field names. Your function then perform the calculation you want using dynamic field names as per Stephen's answer. You use rowfun to iterate over the rows of the table and call your function:
%in its own file (or as an anonymous function)
function result = somefuncname(structA, structB, fieldA, fieldB)
result = structA.(fieldA) + structB.(fieldB);
end
%if using an anonymous function for somefuncname, then you don't need the funwrapper
%pass A and B straight to the function
funwrapper = @(fieldA, fieldB) somefuncname(A, B, fieldA, fieldB);
result = rowfun(funwrapper, yourtable)
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!