Hozzászólások
-
SzerzőBejegyzés
-
Persze egy „A” van definialva, de akkor hogyan tudom a tobbit beolvastatni?
Persze egy „A” van definialva, de akkor hogyan tudom a tobbit beolvastatni?
Ez megoldodott, koszi. Viszont lenne egy masik problema:
Egy file-bol matrixokat szeretnek beolvasni egy
Code:void LME() {int i, j;
FILE *fp;
fp=fopen(„matrix.dat”,”r”);
fscanf(fp,”%d”, &N); // NxN-es matrix, ez benne van a file-ban
for (i=1; i<=N; i++)
for (j=1; j<=N; j++)
fscanf(fp,"%lf %lf", &A[i][j].R, &A[i][j].I); // "A" matrix
fclose(fp);};
fuggvennyel.
A matrix.dat igy nez ki pl.:Code:2 << ez itt a fenti N, N=2
1 0
0 1
2
1 2
3 4
… stb.Az a baj, hogy igy csak egy matrixot olvas be, a tobbibel nem torodik… :-
Code:…
int main(){
…
LME();
…
return 0;
}Ez megoldodott, koszi. Viszont lenne egy masik problema:
Egy file-bol matrixokat szeretnek beolvasni egy
Code:void LME() {int i, j;
FILE *fp;
fp=fopen(„matrix.dat”,”r”);
fscanf(fp,”%d”, &N); // NxN-es matrix, ez benne van a file-ban
for (i=1; i<=N; i++)
for (j=1; j<=N; j++)
fscanf(fp,"%lf %lf", &A[i][j].R, &A[i][j].I); // "A" matrix
fclose(fp);};
fuggvennyel.
A matrix.dat igy nez ki pl.:Code:2 << ez itt a fenti N, N=2
1 0
0 1
2
1 2
3 4
… stb.Az a baj, hogy igy csak egy matrixot olvas be, a tobbibel nem torodik… :-
Code:…
int main(){
…
LME();
…
return 0;
}Pff.. Ne bonyolitsuk tul. Szerintem ertheto az analogia: kulonbozo ertekeket kell beolvasni. Ennyi.
Pff.. Ne bonyolitsuk tul. Szerintem ertheto az analogia: kulonbozo ertekeket kell beolvasni. Ennyi.
A file megnyitasa es beolvasasa.
A file megnyitasa es beolvasasa.
Kicsit konkretabban vazolom: ez a kod eredetileg igy nezett ki:
Code:#include
#include
#include
#include
#include
using namespace std;const float M_2PIf = 6.283185307179586476925286766559f;
float rand(float min,float max)
{
return min+(max-min)*rand()/(float)RAND_MAX;
}int main()
{int i;
double hmin=-2.0;
double hmax=2.0;
int hbins=400;
double* h;
h=new double[hbins];
for (int bin=0; bin<hbins; bin++) h[bin]=0.0;for (i=0;i<100;i++)
{float z = rand(-1.0f, 1.0f);
float a = rand(0.0f, M_2PIf);
float r = sqrtf(1.0f – z*z);
float x = r * cosf(a);
float y = r * sinf(a);
int bin=(int) ((x-hmin)/(hmax-hmin)*hbins);
if ( binhbins-1 ) bin=hbins-1;
h[bin]++;
}for ( int bin=0 ; bin<hbins ; bin++ )
{
double X=hmin+(bin+0.5)*(hmax-hmin)/hbins;
double Y=h[bin];
}delete[] h;
return 0;
}Ugye itt benne veletlen szamokat general es ezeket hasznaljuk fel. Konkretan itt csak az „x”-et, ebben a sorban:
Code:int bin=(int) ((x-hmin)/(hmax-hmin)*hbins);Na, a mostani kod is ugyanez, csak azzal a kulonbseggel, hogy nekem az „x” ertekek mar elore megvannak egy file-ban es onnan szeretnem megkapni oket. Csak be kene olvasni oket ugyanugy, ahogyan itt is tortenik.
Kicsit konkretabban vazolom: ez a kod eredetileg igy nezett ki:
Code:#include
#include
#include
#include
#include
using namespace std;const float M_2PIf = 6.283185307179586476925286766559f;
float rand(float min,float max)
{
return min+(max-min)*rand()/(float)RAND_MAX;
}int main()
{int i;
double hmin=-2.0;
double hmax=2.0;
int hbins=400;
double* h;
h=new double[hbins];
for (int bin=0; bin<hbins; bin++) h[bin]=0.0;for (i=0;i<100;i++)
{float z = rand(-1.0f, 1.0f);
float a = rand(0.0f, M_2PIf);
float r = sqrtf(1.0f – z*z);
float x = r * cosf(a);
float y = r * sinf(a);
int bin=(int) ((x-hmin)/(hmax-hmin)*hbins);
if ( binhbins-1 ) bin=hbins-1;
h[bin]++;
}for ( int bin=0 ; bin<hbins ; bin++ )
{
double X=hmin+(bin+0.5)*(hmax-hmin)/hbins;
double Y=h[bin];
}delete[] h;
return 0;
}Ugye itt benne veletlen szamokat general es ezeket hasznaljuk fel. Konkretan itt csak az „x”-et, ebben a sorban:
Code:int bin=(int) ((x-hmin)/(hmax-hmin)*hbins);Na, a mostani kod is ugyanez, csak azzal a kulonbseggel, hogy nekem az „x” ertekek mar elore megvannak egy file-ban es onnan szeretnem megkapni oket. Csak be kene olvasni oket ugyanugy, ahogyan itt is tortenik.
-
SzerzőBejegyzés
legutóbbi hsz