szukanie zaawansowane
 [ Posty: 1 ] 
Autor Wiadomość
Mężczyzna Offline
PostNapisane: 13 lis 2017, o 16:33 
Użytkownik

Posty: 34
Lokalizacja: Łódź
Witam,
Postanowiłem podszkolić się trochę w Octave, gdzie realizuję takie o to zadanie:
Mam pewne wzory, za pomocą których przeliczam długość i szerokość geograficzną na współrzędne prostokątne płaskie:
x=(R \cdot sin\phi _{s} \cdot cot\phi) \cdot cos\lambda
y=(R \cdot sin\phi _{s} \cdot cot\phi) \cdot sin\lambda

Gdzie: \phi _{s}=18^{\circ}

To samo zadanie rozwiązałem sobie w excelu, który podaję za przykład:
Obrazek

I teraz o co mi chodzi:

Chciałbym, żeby w Octave podać macierz (lub zapisać to w innej postaci), która zawierałaby szerokość geograficzną (\phi), o skoku 20 stopni w przedziale od 0 do 80, a następnie przeliczyć to do radianów, żeby móc obliczać sobie sinusy,cosiunusy itd. co rozwiązałem w ten sposób:
Kod:
1
2
fi_stopnie=0:20:80
fi=deg2rad(fi_stopnie)


Analogicznie z długością geograficzną, tyle że w przedziale od -160 do 180:
Kod:
1
2
lambda_stopnie=-160:20:180
lambda=deg2rad(lambda_stopnie)


I teraz pojawia się problem z dalszymi obliczeniami, jak wykonać podstawienie do wzoru na obliczenie x,y, żeby dla pierwszej wartości \phi z macierzy (w przykładzie z excela o wartości równej 0), program wziął każdy element macierzy \lambda czyli sparował to w ten sposób:

0 z macierzy fi z -160 z macierzy lambda
0 z macierzy fi z -140 z macierzy lambda
0 z macierzy fi z -120 z macierzy lambda
...
0 z macierzy fi z 180 z macierzy lambda

Czego przykład widoczny jest na screenie powyżej, a następnie obliczył dla każdej takiej pary x,y ze wzorów podanych na początku?

Może jest na to inny sposób niż zapisanie tego w macierzy?
Generalnie efekt takiego skryptu ma być taki, że podaję przedział fi oraz skok, przedział lambda oraz skok,a program oblicza x,y tak jak w przykładzie z excela?

Z góry dziękuję za pomoc. W razie niejasności chętnie dopowiem ;)

-- 13 lis 2017, o 19:18 --

EDIT: W dużym uproszczeniu potrzebuję komendy, która pozwoli mi posiadając np. taką macierz A:
A=
Kod:
1
2
3
4
20
40
60
80


wymnożyć każdy element macierzy A przez każdy kolejny element macierzy B
B=
Kod:
1
2
3
4
5
6
7
0
15
30
40
60
75
90


czyli: 20 x 0, 20 x 15, 20 x 30 itd.
potem zrobi to samo z drugim elementem macierzy A: 40 x 0, 40 x 15, 40 x 30, 50, x 45 itd.

i zwróci mi wynik w postaci jednej macierzy o wymiarze 1 kolumny i liczbie wierszy równej liczbie wierszy większej macierzy.
Góra
Utwórz nowy temat Odpowiedz w temacie  [ Posty: 1 ] 


 Zobacz podobne tematy
 Tytuł tematu   Autor   Odpowiedzi 
 [Octave 3.6.4] Zaprogramowanie algorytmu metody Newtona  piotrek52  2
 Matlab/Octave funkcja EIGS  Aquagen  0
 Octave i Latex  Paylinka07  0
 układ równań w octave  aisak7  0
 [Octave]wielomian interpolacyjny  lightinside  0
 
Atom [Regulamin Forum] [Instrukcja LaTeX-a] [Poradnik] [F.A.Q.] [Reklama] [Kontakt]
Copyright (C) Karpatka.pl