2011-10-16 5 views
1

Alors Im essayant de comprendre comment pouvoir utiliser,L'utilisation de toutes les combinaisons possibles

parameters = {[6 12 18 24], [1200 1800 2400 3000], [80 90 100],[80 90 100],[80 90 100]}; 

[r T3 Ec Et Er ] = ndgrid(parameters{:}); 

Allcombinations = [r(:) T3(:) Ec(:) Et(:) Er(:)]; 

cela me donne toutes les combinaisons possibles de de mes paramètres orginal

J'ai besoin de brancher chaque combinaison des paramètres dans de nombreuses équations est quelle est la meilleure façon de le faire? Par exemple, si je veux retirer la 1ère ligne et brancher les valeurs correspondantes, disons par exemple;

%# Note: k, Cp and T1 are predefined constants 

Ec1=Ec/100; 

Et1=Et/100; 

Er1=Er/100; 

T2s=T1*(r)^((k-1)/k); 

T4s=T3*(1/r)^((k-1)/k); 

T2a=((T2s-T1)/Ec1)+T1; 

T4a=T3-Et1*(T3-T4s); 

wca=Cp*(T2a-T1); 

wta=Cp*(T3-T4a); 

T5s=Er1*(T4a-T2a)+T2a; 

qcombustion=Cp*(T3-T5s); 

qregen=Cp*(T5s-T2a); 

qin=qcombustion+qregen; 

fprintf ('\n Net Work Output=%6.2f', wnet) 

fprintf ('\n Back Work Ratio=%4.2f', rbw) 

fprintf ('\n Thermal Efficiency=%4.2f\n', Eth) 

Je ne suis pas sûr, mais ce que je certains comment utiliser Allcombinations(n,:)

J'apprécierais vraiment une aide Merci

Répondre

1

Vous pouvez calculer tout pour toutes les combinaisons possibles en utilisant element-wise operators en une seule fois:

%# Note: k, Cp and T1 are predefined constants 

parameters = {[6 12 18 24], [1200 1800 2400 3000], [80 90 100],[80 90 100],[80 90 100]}; 

[r T3 Ec Et Er ] = ndgrid(parameters{:}); 

%# turn arrays into vectors 
r = r(:); 
T3 = T3(:); 
Ec1=Ec(:)/100; 
Et1=Et(:)/100; 
Er1=Er(:)/100; 

%# perform calculations using element-wise operators 

T2s=T1.*(r).^((k-1)/k); 

T4s=T3.*(1./r).^((k-1)/k); 

T2a=((T2s-T1)./Ec1)+T1; 

T4a=T3-Et1.*(T3-T4s); 

wca=Cp*(T2a-T1); 

wta=Cp*(T3-T4a); 

T5s=Er1.*(T4a-T2a)+T2a; 

qcombustion=Cp*(T3-T5s); 

qregen=Cp*(T5s-T2a); 

qin=qcombustion+qregen; 

%# Warning: These statements will produce a lot of output! 

%# If you want to show the output for, say, combination #5 
%# use e.g. wnet(5) 

fprintf ('\n Net Work Output=%6.2f', wnet) 

fprintf ('\n Back Work Ratio=%4.2f', rbw) 

fprintf ('\n Thermal Efficiency=%4.2f\n', Eth) 
+0

Merci. et à propos des résultats, je sais qu'il devrait être une matrice 426x 5 et je dois les tracer tous merci beaucoup –

Questions connexes