Logical indexing of nonscalar structures

조회 수: 1 (최근 30일)
Octavian
Octavian 2021년 1월 30일
답변: Jan 2021년 1월 30일
Dear All,
I have a nonscalar nested structure s of length n, I need to index field e in s (s.a.b.c.d.e). I can do it with a loop,
for i = 1:length(s)
s(i).a.b.c.d.e = g(x(i));
end
where x is a logical array. I wanted to know if it is possible to use x for indexing s(x).a.b.c.d.e = g(x); I have lots of such assigments in my code, so it is important to know. For now, I get a dot indexing error when trying the logical indexing.
Thank you,
O

답변 (2개)

Matt J
Matt J 2021년 1월 30일
No, it is not possible.

Jan
Jan 2021년 1월 30일
There is no abbreviation. There is no method for vectorizing the access of nested struct arrays.
Maybe a tiny acceleration:
gx = g(x);
for i = 1:length(s)
s(i).a.b.c.d.e = gx(i);
end

카테고리

Help CenterFile Exchange에서 Structures에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by