How to Exclude Some Fields While Using the Function structfun?
古いコメントを表示
A.B.C = [1 2 3];
A.B.D = [3 4 5];
A.B.E = [6 7 8];
How to exclude A.B.E from the calculation and just get the sums of A.B.C and A.B.D (i.e., g = [4 6 8])?
for i = 1 : 3
z = structfun(@(x) x(i), A.B);
g(1, i) = sum(z);
end
g
1 件のコメント
dpb
2017 年 3 月 5 日
structfun doesn't have an except clause; think you'll have to use dynamic field names and looping to accomplish this programmatically.
The simple answer for the specific case that doesn't generalize well and is probably not the actual question, either, is just
sum([A.B.C;A.B.D])
採用された回答
その他の回答 (1 件)
Jari Braeckman
2021 年 9 月 7 日
It should work like this
for i = 1 : 3
z = structfun(@(x) x(i), rmfield(A.B,'E'));
g(1,i) = sum(z);
end
カテゴリ
ヘルプ センター および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!