J'ai un tableau de structure contenant des champs sous forme de tableaux de structure de longueur variable. Par exemple:MATLAB: Déterminer la longueur/taille totale d'un tableau de structure avec des champs en tant que tableaux de structure
« s » est une structure « données » est un domaine dans l « », et aussi un tableau de structure elle-même et
length(s(n).data) ~= length(s(m).data)
Je veux preallocate un tableau qui prend un temps tampon de chaque champ à l'adresse. Y at-il un moyen de le faire sans utiliser une boucle for deux fois? Voilà ce que j'ai jusqu'à présent:
% find the total length
count=0;
for x=1:length(s)
count=count+length(s(x).data);
end
% preallocate timestamp array
timestamp=zeros(1,count);
% populate timestamp array
index=1;
for x=1:length(s)
for y=1:length(s(x).data)
timestamp(index)=s(x).data(y).timestamp;
index=index+1;
end
end
Je pensais à juste surestimant la longueur que je besoin en fonction de la longueur de « s » et une longueur moyenne des « données », mais la longueur réelle de chaque ' Le champ/sous-structure des données varie considérablement. Serais-je mieux de simplement surestimer le diable et couper le tableau résultant par la suite? Les horodatages à zéro sont impossibles avec l'ensemble de données avec lequel je travaille, cela ne devrait donc pas poser de problème.
Wow! Seulement deux lignes - je crois que le terme «génie fous» peut s'appliquer ici. – Doresoom
@doresoom: Les listes séparées par des virgules sont vos amis. ;) – gnovice