Odpovedať 
 
Hodnotenie témy:
  • 0 Hlasov - 0 Priemer
  • 1
  • 2
  • 3
  • 4
  • 5
Prosim o pomoc s podminkou
03-16-2013, 10:25
Príspevok: #1
Prosim o pomoc s podminkou
Ahoj prosim Vas o pomoc s nasledovnou castou programu:

elseif (Ees<120) ;

Lz1_Dv1=(((((B1*((sin(HS_rad*pi/180))^C1)))/(((cos(HS_rad*pi/180))^D1))+(E1*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz2_Dv2=(((((B2*((sin(HS_rad*pi/180))^C2)))/(((cos(HS_rad*pi/180))^D2))+(E2*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz3_Dv3=(((((B3*((sin(HS_rad*pi/180))^C3)))/(((cos(HS_rad*pi/180))^D3))+(E3*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz4_Dv4=(((((B4*((sin(HS_rad*pi/180))^C4)))/(((cos(HS_rad*pi/180))^D4))+(E4*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz5_Dv5=(((((B5*((sin(HS_rad*pi/180))^C5)))/(((cos(HS_rad*pi/180))^D5))+(E5*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz6_Dv6=(((((B6*((sin(HS_rad*pi/180))^C6)))/(((cos(HS_rad*pi/180))^D6))+(E6*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
one=abs(Lz1_Dv1-Lzm_Dvm);
two=abs(Lz2_Dv2-Lzm_Dvm);
three=abs(Lz3_Dv3-Lzm_Dvm);
four=abs(Lz4_Dv4-Lzm_Dvm);
five=abs(Lz5_Dv5-Lzm_Dvm);
six=abs(Lz6_Dv6-Lzm_Dvm);
%hľadanie minima
x_name=['1', '2', '3', '4', '5', '6'];
[~, argx]=min([one, two, three, four, five, six]);
sprava = x_name(argx);
else
Lz7_Dv7=(((((B7*((sin(HS_rad*pi/180))^C7)))/(((cos(HS_rad*pi/180))^D7))+(E7*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz8_Dv8=(((((B8*((sin(HS_rad*pi/180))^C8)))/(((cos(HS_rad*pi/180))^D8))+(E8*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz9_Dv9=(((((B9*((sin(HS_rad*pi/180))^C9)))/(((cos(HS_rad*pi/180))^D9))+(E9*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz10_Dv10=(((((B10*((sin(HS_rad*pi/180))^C10)))/(((cos(HS_rad*pi/180))^D10))+(E10*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz11_Dv11=(((((B11*((sin(HS_rad*pi/180))^C11)))/(((cos(HS_rad*pi/180))^D11))+(E11*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz12_Dv12=(((((B12*((sin(HS_rad*pi/180))^C12)))/(((cos(HS_rad*pi/180))^D12))+(E12*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz13_Dv13=(((((B13*((sin(HS_rad*pi/180))^C13)))/(((cos(HS_rad*pi/180))^D13))+(E13*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz14_Dv14=(((((B14*((sin(HS_rad*pi/180))^C14)))/(((cos(HS_rad*pi/180))^D14))+(E14*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
Lz15_Dv15=(((((B15*((sin(HS_rad*pi/180))^C15)))/(((cos(HS_rad*pi/180))^D15))+(E15*(sin(HS_rad*pi/180)))))/(133.8*(sin(HS_rad*pi/180))));
seven=abs(Lz7_Dv7-Lzm_Dvm);
eight=abs(Lz8_Dv8-Lzm_Dvm);
nine=abs(Lz9_Dv9-Lzm_Dvm);
ten=abs(Lz10_Dv10-Lzm_Dvm);
eleven=abs(Lz11_Dv11-Lzm_Dvm);
twelve=abs(Lz12_Dv12-Lzm_Dvm);
thirteen=abs(Lz13_Dv13-Lzm_Dvm);
forteen=abs(Lz14_Dv14-Lzm_Dvm);
fifteen=abs(Lz15_Dv15-Lzm_Dvm);
%hľadanie minima
x_name=['7', '8', '9', '10', '11', '12', '13', '14', '15'];
[~, argx]=min([seven, eight, nine, ten, eleven, twelve, thirteen, forteen, fifteen]);
sprava = x_name(argx);

o co ide: Ak mam podmienku Ees je menej ako 120 - vypocita hodnoty 1-6 a vyberie minimalnu hodnotu. To mi funguje.
Co nefunguje je druha podmienka - pokial Ees je viac ako 120 vypocita hodnota 7-15 a potrebujem aby tak isto vypocitalo minimalnu hodnotu a vypisalo jedno z cisel 7-15.
Tam som narazil na problem ze mi pise casto "0" myslim si ze je to z dovodu toho ze mi naprikald vyde vysledok minima na premennej eleven a to je v poradi 5 premenna a preto mi vypise cislo 0 namiesto 11. Pretoze je to nejako spojene s prvou podmienkou.
Vie mi niekto poradit co s tym? ako to zapisat? aby mi v prvej podmienke vypisalo cislo 1-6 a pokial nebude platna tak z druhej podmienky cisla 7-15?
Dakujem
Vyhľadať všetky príspevky tohoto používateľa
Citovať príspevok v odpovedi
Odpovedať 


Príspevky v tejto téme
Prosim o pomoc s podminkou - Jan Lacko - 03-16-2013 10:25

Skok na fórum:




Kontakty | matlab.sk | Nahor | Na obsah | Odľahčený (archivačný) mód | RSS