Использование всех возможных комбинаций - PullRequest
1 голос
/ 17 октября 2011

Так что я пытаюсь выяснить, как можно использовать,

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(:)];

это дает мне все возможные комбинации из моих исходных параметров

Мне нужно подключить каждую комбинацию параметровво многих уравнениях, что является лучшим способом сделать это?

например, если я хочу вытащить 1-ую строку и вставить соответствующие значения, скажем, в;

%# 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)

Я не уверен, но хотел бы я как-нибудь использовать Allcombinations(n,:)

Я был бы очень признателен за помощь Спасибо

1 Ответ

1 голос
/ 17 октября 2011

Вы можете рассчитать все для всех возможных комбинаций, используя поэлементные операторы за один раз:

%# 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...