MATLAB: « L’index dépasse le nombre d’éléments de tableau (1). »

 
load('air.txt')
Air.temp = air(:,1);
Air.press = air(:,2);
Air_R = 0.287;
load('argon.txt')
Argon.press = argon(:,2);
Argon.temp = argon(:,1);
Argon_R = 0.208;
load('helium.txt')
Helium.press = helium(:,2);
Helium.temp = helium(:,1);
Helium_R = 2.080;
for k = 1:length(air)
Air(k).vol = (Air_R*Air(k).temp)./Air(k).press;
end
for k = 1:length(argon)
Argon(k).vol = (Argon_R*Argon(k).temp)./Argon(k).press;
end
for k = 1:length(helium)
Helium(k).vol = (Helium_R*Helium(k).temp)./Helium(k).press;
end
 
Utiliser la loi du gaz idéal pour calculer la vitesse de l’argon, de l’hélium et de l’air, mais je continue à obtenir et à l’erreur.
« L’index dépasse le nombre d’éléments de tableau (1). »
Lorsque j’exécute le code, je ne reçois que le volume d’air mais pas les volumes d’argon ou d’hélium? J’ai également essayé de créer une fonction définie par l’utilisateur, mais je n’ai pas réussi à comprendre ce qui n’allait pas non plus.

Meilleure réponse

  • La façon dont vous définissez votre structure dans les premières lignes fait que Air est une structure 1×1 avec deux champs (temp et press), chacun étant de 38×1. Donc, appeler Air (2) .temp génère une erreur car Air n’est que 1×1. Pour utiliser les indices correctement, votre première boucle for devrait lire
     

    for k = 1:length(air)
    Air.vol(k) = (Air_R*Air.temp(k))./Air.press(k);
    end