Program
|
03-06-2013, 17:10
Príspevok: #1
|
|||
|
|||
Program
Ahojte,
potrebujem poradit. Existuje niekde navod na to, ked mam v matlabe vytvorenu schemu vzorcov, mam namerane udaje na disku, ako spravim aplikaciu aby mi automaticky nacitala data z pevneho disku, presli vypocty a vysledok sa zapise do novej zlozky na disku? Da sa niekde take nieco najst? Dakujem Miro |
|||
03-06-2013, 19:01
Príspevok: #2
|
|||
|
|||
RE: Program
Sprav si program a ulož ho ako .m súbor. V programe budeš mať časť načítanie (neviem v akom formáte to máš), potom to spočítaš podľa tvojich vzorcov a zas uložíš. V čom je problém ?
|
|||
03-10-2013, 16:53
Príspevok: #3
|
|||
|
|||
RE: Program
dakujem za odpoved. Problem je v tom, ze matlab neovladam a celkovo ani programovanie.
mam toto pripravene:LATIT=48.17; LONGIT=17.06; De=riadok(9); Ge=riadok(8); M=riadok(1); D=riadok(2); H=riadok(4); Dv=riadok(7); Lz=riadok(10); B1=54.63; C1=1; D1=0; E1=0; B2=12.35; C2=3.68; D2=0.59; E2=50.47; B3=48.3; C3=1; D3=0; E3=0; B4=12.23; C4=3.57; D4=0.57; E4=44.27; B5=42.59; C5=1; D5=0; E5=0; B6=11.84; C6=3.53; D6=0.55; E6=38.78; B7=21.72; C7=4.52; D7=0.63; E7=34.56; B8=29.35; C8=4.94; D8=0.7; E8=30.41; B9=10.34; C9=3.45; D9=0.5; E9=27.47; B10=18.41; C10=4.27; D10=0.63; E10=24.04; B11=24.41; C11=4.60; D11=0.72; E11=20.76; B12=23.00; C12=4.43; D12=0.74; E12=18.52; B13=27.45; C13=4.61; D13=0.76; E13=16.59; B14=25.54; C14=4.40; D14=0.79; E14=14.56; B15=28.08; C15=4.13; D15=0.79; E15=13.00; MIN=riadok(5); SEC=H+(MIN/60); DEC_stup=23.45*sind(29.7*M+0.98*D-109); DEC_rad=(23.45*pi/180)*sin((29.7*M+0.98*D-109)*pi/180); TIMCOR_stup=0.125*sind(0.98*D+29.7*M-32)+(0.165*sind(1.96*D+59.4*M-38)); TIMCOR_rad=(0.125*pi/180)*sin((0.98*D+29.7*M-32)*pi/180)+(0.165*pi/180)*sin((1.96*D+59.4*M-38)*pi/180); TRUEST=SEC+((4*(LONGIT-15))/60)-TIMCOR_stup; HA=15*TRUEST; HS_stup=asind(sind(LATIT)*sind(DEC_stup)-cosd(LATIT)*cosd(DEC_stup)*cosd(HA)); HS_rad=asin(sin(LATIT*pi/180)*sin(DEC_stup*pi/180)-cos(LATIT*pi/180)*cos(DEC_stup*pi/180)*cos(HA*pi/180)); Ees=(Ge-De)/sin(HS_rad*pi/180); Lzm_Dvm=Lz/Dv; if((Lzm_Dvm>0.6)||(Lzm_Dvm<0.05))||(HS_rad<5); sprava='error'; else if (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={'one' 'two' 'three' 'four' 'five' 'six'}; x=[one two three four five six]; [min_val pos]=min(x); disp('Minimálna hodnota je') min_val disp('V premennej') x_name{pos} 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={'seven' 'eight' 'nine' 'ten' 'eleven' 'twelve' 'thirteen' 'forteen' 'fifteen'}; x=[seven eight nine ten eleven twelve thirteen forteen fifteen]; [min_val pos]=min(x); disp('Minimálna hodnota je') min_val disp('V premennej') x_name{pos} end end vysledok = [riadok(1), riadok(2), riadok(3), riadok(4), riadok(5), sprava]; potrebujem tam dopisat nacitanie dat z pevneho disku, ktore budu mat priponu .ouf potom pre kazdy riadok z daneho subory aby sa spravil vypocet, ktory som tu nakopiroval a pre kazdy riadok aby sa spravil do inej zlozky na disku zapis ako je v casti "vysledok" |
|||
03-10-2013, 18:52
Príspevok: #4
|
|||
|
|||
RE: Program
Ešte by to chcelo vidieť formát toho súboru .ouf a ako sú tam dáta uložené.
|
|||
03-10-2013, 19:05
Príspevok: #5
|
|||
|
|||
RE: Program
je to nieco taketo:
03 01 00 06 22 52 38 0 0 0 0.00 03 01 00 06 23 52 38 0 0 0 0.00 03 01 00 06 24 52 38 0 0 0 0.00 03 01 00 06 25 52 52 0 0 0 0.00 03 01 00 06 26 52 52 0 0 21 0.00 03 01 00 06 27 52 52 0 0 21 0.00 03 01 00 06 28 103 77 0 0 21 0.00 03 01 00 06 29 103 103 0 0 21 0.00 03 01 00 06 30 103 103 0 0 21 0.00 03 01 00 06 31 103 103 0 0 21 0.00 03 01 00 06 32 155 153 0 0 42 0.00 03 01 00 06 33 155 153 0 0 42 0.00 03 01 00 06 34 155 153 0 0 42 0.00 03 01 00 06 35 155 155 0 0 42 0.00 03 01 00 06 36 207 192 0 0 42 0.00 03 01 00 06 37 207 207 1 0 42 0.00 03 01 00 06 38 207 207 1 1 62 0.00 03 01 00 06 39 258 258 1 1 62 0.00 03 01 00 06 40 258 258 1 1 62 0.00 03 01 00 06 41 258 258 1 1 62 0.00 03 01 00 06 42 310 309 1 1 62 0.00 03 01 00 06 43 310 309 2 2 62 0.00 03 01 00 06 44 310 310 2 2 62 0.00 03 01 00 06 45 310 310 2 2 83 0.00 su to vlastne mesacne namerane udaje. jeden subor s koncovkou .ouf je jeden mesiac. Mam takto cely rok namerany v 12-tich .ouf suboroch. Potrebujem teda po riadkoch vypocty a aby na konci vypoctu spravil podobny ouf subor s vysledkami. Mam namerany napr marec.ouf a potrebujem po vypocte pripravit na disku subor napr marec_vysledky.ouf kde budu v riadkoch vytiahnute vysledky ktore potrebujem. Je to zrozumitelne napisane co mam na mysli? |
|||
03-16-2013, 15:03
(Tento príspevok bol naposledy zmenený: 03-16-2013 15:04 od Larry.)
Príspevok: #6
|
|||
|
|||
RE: Program
Kód: data = importdata('cesta_k_vstupnym_suborom/nazov_vstupneho_suboru.ouf'); data = impordtada(subor) - vlozi do premennej data subor, v takomto formate to dokaze hned aj rozpoznat takze pristup k datam je data( riadok, stlpec ) spracovane_data - tie su len na ukazku vo funkcii fprintf treba ten druhy argument(definujuci format) spravit podla toho ako to potrebujete... |
|||
|