필드 크기가 가변적 인 경우 구조체 배열을 미리 할당하려고 시도 할 때 값이 있습니까? 예를 들면 다음과 같습니다.알 수없는 길이 필드가있는 구조체 배열 초기화
A.x = randn(1,randi(100));
A.y = randn(1,randi(100));
for k = 2:1000
A(k).x = randn(1,randi(100));
A(k).y = randn(1,randi(100));
end
첫 번째 항목을 만든 다음 repmat을 사용할 수 있지만 MATLAB은 알 수없는 필드 길이를 처리해야합니다. 내 테스트에서는 동적으로 성장시키는 것과 비교하여 거의 개선되지 않았습니다. 부수적으로 괄호 (예 : A = [A nextEntry])로 성장시키는 것은 훨씬 느립니다.
속도를 높이기 위해 사전 할당을 수행하는 영리한 방법이 있습니까?
아마도이 게시물이 도움이 될 것입니다 : http://stackoverflow.com/questions/28664640/matlab-vectorization-filling-struct-fields-from-vector-elements – rayryeng
당신은 * 값 *을 초기화 할 필요가 없습니다. 필드들뿐입니다. 값은 메모리의 다른 위치에 저장됩니다. – Suever