Kezdőlap › Fórumok › Programozás › matrix osztaly osszeadasra
- This topic has 178 hozzászólás, 8 résztvevő, and was last updated 17 years, 4 months telt el by
uzsolt.
-
SzerzőBejegyzés
-
2008-02-21-18:18 #2154639
Helyesbites: a matrixok osszeget osztanam a generalt matrixok szamaval, ugye pl. 5 matrix osszeadasa eseten 5-tel…
2008-02-21-18:18 #2154640Helyesbites: a matrixok osszeget osztanam a generalt matrixok szamaval, ugye pl. 5 matrix osszeadasa eseten 5-tel…
2008-02-21-20:31 #2154641Amiket irtal szerintem egyszeru dolgok. A Matrix osztalyodat szerintem tulaltalanositottad (avagy agyuval a verebre).
Amire szukseged lenne (szerintem):
– a fuggveny, amivel a vektorokbol matrixot allit elo: ez lehetne a matrix metodusa
– osszeadasi mulvelet 2 matrix kozott
– matrix osztasa skalarralVazolom kodban:
Code:struct vektor {
float x,y,z;
};class Matrix3x3 {
private:
float tomb[3][3]; // minek vacakolni?public:
void init(vektor a, vektor b){
// itt feltoltod a ‘tomb’-ot
}
Matrix3x3 &operator +=(Matrix3x3 b){ // osszeadas
int x,y;
for(x=0; x<3; x++)
for(y=0; y<3; y++)
tomb[x][y] += b.tomb[x][y];
return *this;
}
Matrix3x3 &operator/=(float c){ // osztas skalarral
int x,y;
for(x=0; x<3; x++)
for(y=0; y<3; y++)
tomb[x][y] /= c;
return *this;
}
};A hasznalat valami ilyesmi lehetne:
Code:vektor valami[10]; // ott vannak a vektoraink, feltoltve
Matrix m[10]; // matrixok
for(i=0; i<n; i++)
m[I].init(valami[I]; // minden vektor atalakitva
Matrix osszeg = m[0];
for(i=1; i<n; i++)
osszeg += m[I];
m /= egy_szam;
// most m-ben megvan ami kell neked2008-02-21-20:31 #2154642Amiket irtal szerintem egyszeru dolgok. A Matrix osztalyodat szerintem tulaltalanositottad (avagy agyuval a verebre).
Amire szukseged lenne (szerintem):
– a fuggveny, amivel a vektorokbol matrixot allit elo: ez lehetne a matrix metodusa
– osszeadasi mulvelet 2 matrix kozott
– matrix osztasa skalarralVazolom kodban:
Code:struct vektor {
float x,y,z;
};class Matrix3x3 {
private:
float tomb[3][3]; // minek vacakolni?public:
void init(vektor a, vektor b){
// itt feltoltod a ‘tomb’-ot
}
Matrix3x3 &operator +=(Matrix3x3 b){ // osszeadas
int x,y;
for(x=0; x<3; x++)
for(y=0; y<3; y++)
tomb[x][y] += b.tomb[x][y];
return *this;
}
Matrix3x3 &operator/=(float c){ // osztas skalarral
int x,y;
for(x=0; x<3; x++)
for(y=0; y<3; y++)
tomb[x][y] /= c;
return *this;
}
};A hasznalat valami ilyesmi lehetne:
Code:vektor valami[10]; // ott vannak a vektoraink, feltoltve
Matrix m[10]; // matrixok
for(i=0; i<n; i++)
m[I].init(valami[I]; // minden vektor atalakitva
Matrix osszeg = m[0];
for(i=1; i<n; i++)
osszeg += m[I];
m /= egy_szam;
// most m-ben megvan ami kell neked2008-02-21-21:00 #2154643Bocsi a szőrözésért, csak talaltam valahol egy ilyet:
Code:template
Matrix TensorProduct(Matrix& A,Matrix& B) {if (A.M == 1 && A.N == 1) {
return B;
}if (B.M == 1 && B.N == 1)
return A;int rows = A.M*B.M;
int cols = A.N*B.N;Matrix M(rows,cols);
for (int i=0;i<rows;i++)
for (int j=0;j<cols;j++)
M(i,j) = A(i/B.M,j/B.N) * B(i%B.M,j%B.N);return M;
}ami egy vektorbol csinal nekem 3×3-as matrixot. Most ezt vagy ehhez hasonlot kellene ide atultetnem, de ez NEKEM nem tunik egyszerunek…
2008-02-21-21:00 #2154644Bocsi a szőrözésért, csak talaltam valahol egy ilyet:
Code:template
Matrix TensorProduct(Matrix& A,Matrix& B) {if (A.M == 1 && A.N == 1) {
return B;
}if (B.M == 1 && B.N == 1)
return A;int rows = A.M*B.M;
int cols = A.N*B.N;Matrix M(rows,cols);
for (int i=0;i<rows;i++)
for (int j=0;j<cols;j++)
M(i,j) = A(i/B.M,j/B.N) * B(i%B.M,j%B.N);return M;
}ami egy vektorbol csinal nekem 3×3-as matrixot. Most ezt vagy ehhez hasonlot kellene ide atultetnem, de ez NEKEM nem tunik egyszerunek…
2008-02-21-21:55 #2154645Ahogy elnezem, minimum 2 vektor kell hozza. Hogy 3×3-ast kapj, kell egy 3×1-es es egy 1×3-as matrix.
Ha jol latom errol van szo:
http://en.wikipedia.org/wiki/Tensor_product
http://en.wikipedia.org/wiki/Kronecker_productA masodik link alapjan konnyu rajonni a logikajara 😉
2008-02-21-21:55 #2154646Ahogy elnezem, minimum 2 vektor kell hozza. Hogy 3×3-ast kapj, kell egy 3×1-es es egy 1×3-as matrix.
Ha jol latom errol van szo:
http://en.wikipedia.org/wiki/Tensor_product
http://en.wikipedia.org/wiki/Kronecker_productA masodik link alapjan konnyu rajonni a logikajara 😉
2008-02-21-21:58 #2154647Persze. A generalt random vektort osszeszorzom onmagaval tenzorialisan… Csak ezt kellene beletenni az altalad vazolt kodba…valahogy
2008-02-21-21:58 #2154648Persze. A generalt random vektort osszeszorzom onmagaval tenzorialisan… Csak ezt kellene beletenni az altalad vazolt kodba…valahogy
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz