Octave - konstrukcja siatki

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
k95n
Użytkownik
Użytkownik
Posty: 32
Rejestracja: 20 paź 2011, o 20:34
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 7 razy

Octave - konstrukcja siatki

Post autor: k95n » 13 lis 2017, o 16:33

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:
\(\displaystyle{ x=(R \cdot sin\phi _{s} \cdot cot\phi) \cdot cos\lambda}\)
\(\displaystyle{ y=(R \cdot sin\phi _{s} \cdot cot\phi) \cdot sin\lambda}\)

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

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


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ą (\(\displaystyle{ \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: Zaznacz cały

fi_stopnie=0:20:80
fi=deg2rad(fi_stopnie)
Analogicznie z długością geograficzną, tyle że w przedziale od -160 do 180:

Kod: Zaznacz cały

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 \(\displaystyle{ \phi}\) z macierzy (w przykładzie z excela o wartości równej 0), program wziął każdy element macierzy \(\displaystyle{ \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: Zaznacz cały

20
40
60
80
wymnożyć każdy element macierzy A przez każdy kolejny element macierzy B
B=

Kod: Zaznacz cały

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.[/size]

ODPOWIEDZ