Mam strukturę 8x18 z każdym celem zawierającym wektor kolumn wystąpień pojedynczego zdarzenia. Chcę uzyskać dane z niektórych z tych pól połączonych w jedną macierz, bez konieczności przechodzenia przez nie. Nie mogę znaleźć sposobu na pionowe łączenie pól, które mnie interesują, w jednej tablicy.Uzyskiwanie wielu pól struktury w Matlab bez przechodzenia przez nie
Jako przykład mogę utworzyć następującą strukturę z między 1 i 5 wystąpień na komórkę:
s(62).vector(8,18).heading.occurrences=[1;2;3];
for i=1:62
for j=1:8
for k=1:18
y=ceil(rand(1)*5);
s(i).vector(j,k).heading.occurrences=rand(y,1);
end
end
end
Teraz, jeśli chcemy uzyskać wszystkie wystąpienia w kilku komórkach zachowując i
stałym poziomie do chwili i=1
następujące prace:
ss=s(1).vector([1 26 45]);
h=[ss.heading];
cell2mat({h.occurrences}')
teraz chciałbym zrobić to samo dla s
na przykład s([1 2 3]).vector([1 26 45])
, w jaki sposób to działa? Próbowałem xx=s([1 2 3])
, yy=xx.vector([1 26 45])
ale to jednak daje błąd:
Expected one output from a curly brace or dot indexing expression, but there were 3 results.
Czy to również możliwe przy pracy wektorowej?
Świetne, dziękuję! – Jasper