Odpovedať 
 
Hodnotenie témy:
  • 0 Hlasov - 0 Priemer
  • 1
  • 2
  • 3
  • 4
  • 5
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
Vyhľadať všetky príspevky tohoto používateľa
Citovať príspevok v odpovedi
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 ?
Vyhľadať všetky príspevky tohoto používateľa
Citovať príspevok v odpovedi
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"
Vyhľadať všetky príspevky tohoto používateľa
Citovať príspevok v odpovedi
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é.
Vyhľadať všetky príspevky tohoto používateľa
Citovať príspevok v odpovedi
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?
Vyhľadať všetky príspevky tohoto používateľa
Citovať príspevok v odpovedi
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');
%spracovanie dat
spracovane_data = [ 1 2; 3 4 ]; % len pre priklad
f = fopen('cesta_k_vystupnym_suborom/nazov_vystupneho_suboru.ouf', 'w');
fprintf( f, '%f %f \n', spracovane_data  );
fclose(f);

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...
Vyhľadať všetky príspevky tohoto používateľa
Citovať príspevok v odpovedi
Odpovedať 


Skok na fórum:




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