Jag har 2-dim arrayer som ska summeras till 1 array. ex och ey måste ju rimligtvis vara dimensionerade som 1-d-arrayer; alltså Fick hjälp av en gammal studiekompis som skriver så här:Summering av två arrayer
Hur gör jag detta?
Jag har två beräkningar, en i x-led och en i y-led.
ex[i][j]=hdx*(phi[im1] [j] - phi[ip1][j]); /*beräknar e-fälet i x-led [i] och låter y-led [j] vara*/
ey[i][j]=hdx*(phi[i] [jm1] - phi[i][jp1]); /*beräknar e-fälet i y-led [j] och låter x-led [i] vara*/
Nu vill jag få en array av de två arrayerna.
Skriver jag endast:
divEp[i][j]=ex[i][j]+ey[i][j];
Får jag då in de beräknade x-värderna i [i] samt de beräknade y-värderna i [j]?
Eller skriver man detta på något annat finurligt sätt?
Tack på förhand!Sv: Summering av två arrayer
ex[j]=hdx*(phi[im1] [j] - phi[ip1][j]); /*beräknar e-fälet i x-led [i] och låter y-led [j] vara*/
ey[i]=hdx*(phi[i] [jm1] - phi[i][jp1]); /*beräknar e-fälet i y-led [j] och låter x-led [i] vara*/
Men det är också en konstig kod; du ville väl summera?
Är det en differens mellan två specifika kolumner och två specifika rader du vill ha fram?
Jag skulle snarare ha skrivit det som något i stil med (om du vill summera):
for(int i=0; i<... ; i++)
for(int j=0; i<... ; i++)
ex[i] += hdx* phi[i][j]
Oavsett, sen vill du slå ihop ex och ey?
Det låter också mycket märkligt, är du säker på att det är rätt?
För det första måste de ha lika många kolumner som rader.
När det är klart gör du väl något i stil med:
divEp[i]=ex[i]+ey[i];
Återigen, du får nog förklara själva situationen noggrannare istället.Sv:Summering av två arrayer
Hej,
nix. Man får tänka 2D. Du har tre 2d-arrayer. Säg att de är 3x5 stora... (med godtyckliga värden....)
Array ex
1 3 2 2 5
1 1 4 8 7
0 1 0 1 9
Array ey
2 5 2 6 2
1 2 3 5 2
2 6 2 9 0
Array divEp
x x x x x
x x x x x
x x x x x
Nu säger vi att i=4 och j=1, Jag markerar positionerna med ett #
Array ex
1 3 2 2 5
1 1 4 8 #
0 1 0 1 9
Array ey
2 5 2 6 2
1 2 3 5 #
2 6 2 9 0
Array divEp
x x x x x
x x x x #
x x x x x
Då blir divEp[4][1] = 7 + 2 = 9
Array ex
1 3 2 2 5
1 1 4 8 # <---- 7
0 1 0 1 9
Array ey
2 5 2 6 2
1 2 3 5 # <---- 2
2 6 2 9 0
Array divEp
x x x x x
x x x x 9
x x x x x
Så den tar inte x-värdet från i och y från j utan den tar värdet från koordinaterna [i][j] från de två arrayerna.
Does it make sense?
Nu har jag fått detta förklarat för mig och stänger därmed ärendet.