Forum » Programiranje » Matlab pomoč
Matlab pomoč
ismon1 ::
Pozdravljeni!
Iz strani snemam skozi steklo vodo, ki se peni. In jaz bi moral v Matlabu spisati program, ki bo:
-posnetek razbil na slike
-slike ''scentriral'' da ne bo projekcije
-na slikah dobil rob, kjer je vodna gladina
-na sliki določil spodnjo točko in izračunal razdaljo od te točke do vodne gladine
-in vse skupaj spravil v koordinate x,y
oziroma bolj na kratko:
input: posnetek vode iz strani
output: koordinate gladine glede na dno posode.
Sem že dobil spisane programe na internetu ki:
-scentrirajo sliko, da ni projekcije
-dobijo rob med vodo in zrakom
Ker je zame to prevelik zalogaj (ja, če bi si vzel 3 tedne, ki jih nimam, bi mi to uspelo), me zanima, če je kdo pripravljen to naredit, ter koliko bi računal. Ponudbe na ZS.
Hvala!
Iz strani snemam skozi steklo vodo, ki se peni. In jaz bi moral v Matlabu spisati program, ki bo:
-posnetek razbil na slike
-slike ''scentriral'' da ne bo projekcije
-na slikah dobil rob, kjer je vodna gladina
-na sliki določil spodnjo točko in izračunal razdaljo od te točke do vodne gladine
-in vse skupaj spravil v koordinate x,y
oziroma bolj na kratko:
input: posnetek vode iz strani
output: koordinate gladine glede na dno posode.
Sem že dobil spisane programe na internetu ki:
-scentrirajo sliko, da ni projekcije
-dobijo rob med vodo in zrakom
Ker je zame to prevelik zalogaj (ja, če bi si vzel 3 tedne, ki jih nimam, bi mi to uspelo), me zanima, če je kdo pripravljen to naredit, ter koliko bi računal. Ponudbe na ZS.
Hvala!
ismon1 ::
Pozdrav.
Nekako smo rešili zgornjo stvar. Imam pa vprašanje. Imam podatke v sledečem redu:
x y
1 2
1 4
1 5
2 4
2 7
2 5
itd.
Nikakor mi ne uspe izpopolniti if stavka, ki bi povedal, da za vsak x najde minimalni y in zapiše x in ymin v txt datoteko, kar bi pomenilo:
x y
1 2
2 4
itd.
Ideje?
Nekako smo rešili zgornjo stvar. Imam pa vprašanje. Imam podatke v sledečem redu:
x y
1 2
1 4
1 5
2 4
2 7
2 5
itd.
Nikakor mi ne uspe izpopolniti if stavka, ki bi povedal, da za vsak x najde minimalni y in zapiše x in ymin v txt datoteko, kar bi pomenilo:
x y
1 2
2 4
itd.
Ideje?
Randomness ::
x = [1 1 1 2 2 2]';
y = [2 4 5 4 7 5]';
n = max(x);
miny = zeros(n,1);
for i=1:n
ii = find(x == i);
miny(i) = min(y(ii));
end
fd = fopen('rezultat.txt', 'w');
for i=1:n
fprintf(fd, '%d %d\n', i, miny(i));
end
fclose(fd);
Zgodovina sprememb…
- spremenilo: Randomness ()
ismon1 ::
Točno to!
Najlepša hvala!
ps.: ne vem zakaj moram pri fprintf vedno dat %d\r\n, da mi dela nove linije. ampak sedaj dela ;)
Najlepša hvala!
ps.: ne vem zakaj moram pri fprintf vedno dat %d\r\n, da mi dela nove linije. ampak sedaj dela ;)
Randomness ::
Na Windowsih sta za prehod v novo vrstico potrebna dva znaka: '\r' in '\n', na Unix sistemih pa le en: '\n'.
New line
New line
Zgodovina sprememb…
- spremenilo: Randomness ()
ismon1 ::
Po vsej logiki bi moralo zapisat v 2 stolpca. Zakaj ne?
fa = fopen('rezultat.txt', 'w');
fprintf(fa, '%d %d\r\n', D(1,1).X, D(1,1).Y);
fclose(fa);
Če mi pa že uspe ustvarit 2 stolpca, pa gredo vrednosti D(1,1).X v oba stolpca, dokler jih ne zmanjka, potem še vrednosti y.
fa = fopen('rezultat.txt', 'w');
fprintf(fa, '%d %d\r\n', D(1,1).X, D(1,1).Y);
fclose(fa);
Če mi pa že uspe ustvarit 2 stolpca, pa gredo vrednosti D(1,1).X v oba stolpca, dokler jih ne zmanjka, potem še vrednosti y.
9797 ::
Lep pozdrav,
Imam problem, pri reševanju ene od nalog v Matlabu:
Izračunajte funkcijo cos(x) s pomočjo neskončne vrste:
cos(x)=1- x^2/2! + x^4/4! - x^6/6! + ...
Uporabnik naj poda vrednost želenega kota v stopinjah. Program naj izračuna kosinus kota na 6 decimalnih mest natančno. Izpiše kot v radianih in vrednost cos za ta kot. Koliko členov ste uporabili? Rešitev primerjajte z Matlabovo funkcijo cos(x).
Ima kdo kakšno idejo, kako rešiti to, oz bi bil pripravljen rešiti?
Imam problem, pri reševanju ene od nalog v Matlabu:
Izračunajte funkcijo cos(x) s pomočjo neskončne vrste:
cos(x)=1- x^2/2! + x^4/4! - x^6/6! + ...
Uporabnik naj poda vrednost želenega kota v stopinjah. Program naj izračuna kosinus kota na 6 decimalnih mest natančno. Izpiše kot v radianih in vrednost cos za ta kot. Koliko členov ste uporabili? Rešitev primerjajte z Matlabovo funkcijo cos(x).
Ima kdo kakšno idejo, kako rešiti to, oz bi bil pripravljen rešiti?
Math Freak ::
Ker nimam Matlaba gor maš tuki kako približno bi lahko izgledalo v Pythonu:
Najprej definiraš funkcijo za izračun fakultete (najbolj preprosta rekurzija), ki jo uporabiš v drugi funkciji. Vse kar moraš storiti potem je, da ugotoviš zaustavitveni pogoj (kdaj dosežeš na 6 decimalk natančen rezultat). cos(x): x računaš v radianih ...
Primer (1): cos(3.14) -> 9. korak rekurzije
Primer (2): cos(0.5) -> 5. korak rekurzije
Najprej definiraš funkcijo za izračun fakultete (najbolj preprosta rekurzija), ki jo uporabiš v drugi funkciji. Vse kar moraš storiti potem je, da ugotoviš zaustavitveni pogoj (kdaj dosežeš na 6 decimalk natančen rezultat). cos(x): x računaš v radianih ...
def f(x): if x == 1: return 1 else: return x*f(x-1) def cos(x): trenutnaVrednost = 0 rezultat = 1 predznak = -1 potenca = 2 for i in range(10): trenutnaVrednost = predznak*(x**potenca/(f(potenca)*1.0)) rezultat += trenutnaVrednost print("trenutnaVrednost: " ,round(rezultat,6)) potenca += 2 predznak *= -1 return "koncni rezultat", rezultat
Primer (1): cos(3.14) -> 9. korak rekurzije
>>> cos(3.14) ('trenutnaVrednost: ', -3.9298) ('trenutnaVrednost: ', 0.120688) ('trenutnaVrednost: ', -1.210518) ('trenutnaVrednost: ', -0.97614) ('trenutnaVrednost: ', -1.001817) ('trenutnaVrednost: ', -0.999899) ('trenutnaVrednost: ', -1.000003) ('trenutnaVrednost: ', -0.999999) ('trenutnaVrednost: ', -0.999999) ('trenutnaVrednost: ', -0.999999) ('koncni rezultat', -0.9999987316527259)
Primer (2): cos(0.5) -> 5. korak rekurzije
>>> cos(0.5) ('trenutnaVrednost: ', 0.875) ('trenutnaVrednost: ', 0.877604) ('trenutnaVrednost: ', 0.877582) ('trenutnaVrednost: ', 0.877583) ('trenutnaVrednost: ', 0.877583) ('trenutnaVrednost: ', 0.877583) ('trenutnaVrednost: ', 0.877583) ('trenutnaVrednost: ', 0.877583) ('trenutnaVrednost: ', 0.877583) ('trenutnaVrednost: ', 0.877583) ('koncni rezultat', 0.8775825618903728)
celada ::
Za break parameter lahko preprosto uporabi delto med trenutnim in predzadnjim rezultatom. Ko je ta manjša od 10^-6 pač ustavi zanko.
specing ::
Lep pozdrav,
Imam problem, pri reševanju ene od nalog v Matlabu:
Izračunajte funkcijo cos(x) s pomočjo neskončne vrste:
cos(x)=1- x^2/2! + x^4/4! - x^6/6! + ...
Uporabnik naj poda vrednost želenega kota v stopinjah. Program naj izračuna kosinus kota na 6 decimalnih mest natančno. Izpiše kot v radianih in vrednost cos za ta kot. Koliko členov ste uporabili? Rešitev primerjajte z Matlabovo funkcijo cos(x).
Ima kdo kakšno idejo, kako rešiti to, oz bi bil pripravljen rešiti?
Prvo na papirju razpišeš neskončno taylorjevo vrsto za cos(x). Nato to vrsto ločiš na dva dela, pri prvem delu (to kar ti rabiš) gre n od 0 do N, pri drugem pa gre n od N+1 do neskončno. Zdaj oceni tak N, da bo druga vrsta (=ostanek) absolutno manjša od 0.000001.
Ko dobiš tak N, narediš N-mestni array z uporabo funkcije arrayfun() in ga sesteješ:
function c = mycos(x)
c = sum(arrayfun (@(x,potenca)( (-1)**(potenca+1) * x**(2*potenca) / factorial(2*potenca) ), 2, [0:N]));
end
@MathFreak inštaliraj si GNU Octave.
@Celada klasičen monkey strategy.
celada ::
Jah odvisno koliko hočeš optimizirati samo funkcijo. Primer od Math Freak-a je praktično brute force rešitev. Tvoja rešitev je pa kompletno odvisna od funkcije za oceno N. V najslabši implementaciji (naprimer da ne upoštevaš cikličnosti cos(x) in vsakič posebaj ocenjuješ potrebno število korakov) bo še počasnejša od Math Freakove. Da ne omenjam da ne uporabljaš memoizacije, ko računaš faktorizacijo :P
Zgodovina sprememb…
- spremenil: celada ()
Jan23 ::
Pozdravljeni.
Potreboval bi pomoč pri kreiranju primera v Matlabu.
Gre se za primer Travelling Salesman Problem, ki bi ga želel rešiti z uporabo optimization toolboxa. Ima kdo idejo kako narediti kriterijsko funkcijo za ta primer?
Lp
Potreboval bi pomoč pri kreiranju primera v Matlabu.
Gre se za primer Travelling Salesman Problem, ki bi ga želel rešiti z uporabo optimization toolboxa. Ima kdo idejo kako narediti kriterijsko funkcijo za ta primer?
Lp
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Zaloga vrednostiOddelek: Šola | 3157 (2946) | Math Freak |
» | Trije integrali pomoč!!!Oddelek: Šola | 3804 (3270) | Math Freak |
» | integralOddelek: Šola | 3362 (1799) | Elyon8472 |
» | Matematika, again :)Oddelek: Šola | 2444 (1898) | tinkatinca |
» | Tezava pri grafu kotnih funkcijOddelek: Šola | 841 (809) | Mavrik |