Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Matrix-berechnung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.07.2006, 09:17 Uhr
~speed2006
Gast


Hallo,

Ich habe einen Problem als neue C++ einsteiger und bitte um Hilfe....

Als erstes möchte gerne aus eine Matrix (siehe unten) den MAXwert rauslesen. Später möchte ich die Fehlern berechnen, d.h. zeile (1) Spalte (1)
ist in diesem Bsp ein Fehler, wobei zeile (2) spalte (2) kein Fehler hat.
Ich habe die Fehlern mit * kennzeichnet!
Insgesammt 3 von 5 also 3/5 = 60% Fehlerrate.
ich Danke euch wenn ihr mir mal den Code zeigen könntet!!!!

ps: Gibt es auch eine Funktion wo in eine zeile den MAXwert ausgibt?


1 2 3 4 5

5 4 2 1 7 *
2 7 4 1 6
3 2 5 7 8 *
8 9 4 3 1 *
4 6 7 5 9
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.07.2006, 11:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

ps: Gibt es auch eine Funktion wo in eine zeile den MAXwert ausgibt?


Das Problem, wo ich seh ich das ich nicht so richtig verstehe was genau du eigentlich willst.
Was genau willst du eigentlich machen?

Zum ermitteln des maxwert muss du einfach einmal in ner schleife durchgehen und dir den größten wert merken...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.07.2006, 11:46 Uhr
~Speed2006
Gast


dieses Code tut es einfach nicht!!!!
hab genau so gemacht wie du es mir gesagt hast leider Erfolglos
Es sind 2 Schleifen und bei der Spaltenausrechnung bekomme ich Folgendes

Datei

Code:
****************************************
1    12    2
7    8    9    
1    5    3

4    2    1        
4    2    1        
5    4    3

2    1    0
2    1    3
4    1    2

************************************


Ergebnis

Code:
***********************************

[ 1  12  2 ]MAX: 12% 1
[ 7  8  9 ]MAX: 9% 2
[ 1  5  3 ]MAX: 5% 3

[ 4  2  1 ]MAX: 2% 1
[ 4  2  1 ]MAX: 2% 2
[ 5  4  3 ]MAX: 4% 3

[ 2  1  0 ]MAX: 1% 1
[ 2  1  3 ]MAX: 3% 2
[ 4   1  2 ]MAX: 2% 2

**********************************




C++:
    for(int i=0; i<sFileProp.nLines; i++)
        {    
                
            
            fprintf(of, "[");
            //int x=i;
            //if ( x == sFileProp.nColumns )
            //{
                    
            //fprintf(of,"\n\n" );
            //x=0;
            //}
            for(int j=0; j<sFileProp.nColumns; j++)
            {
                
                if(j <= sFileProp.nColumns-amo-1) { // -> not a class label
                    // print non classlabel
                    n = (int)f[i][j];
                    //if((f[i][j] - (float)n) == 0)
                    if((f[i][j] - (int)n) == 0)
                        
                        
                        fprintf(of, " %.2g ", f[i][j]);
                            
                    else
                        
                        fprintf(of, "%.1g",f[i][j]);
                        
                        if( tmp >  f[i][j+1])
                        {                        
                    
                         tmp = tmp;
                        
                        //fprintf(of, " %f 1 ", tmp);
                        }
                        else
                        {tmp=  f[i][j+1];
                        //fprintf(of, " %f 2 ", tmp);
                        }
                        
//                         fprintf(of, "%.1g", f[i][j]);
//                         if(f[i][j] >  f[i][j+1])
//                         {
//                         tmp = f[i][j];
//                         }
//                         else
//                         {tmp=  f[i][j+1];}
                } else
                
                {
                    // print class label
                    if(type == LVQ || type == MATRIX)
                    {
                        
                        n = (int)f[i][j];
                        
                            if((f[i][j] - (float)n) == 0)
                            if((f[i][j] - (int)n) == 0)
                            fprintf(of, "%f", n);    
                            
                        else
                        
                            fprintf(of, "%f", f[i][j]);
                    } //else if(type == EPSILO) { // EPSILO
                        // didn't work with more than one classlabel!!!
                        //for(int a=1; a<=max_cl; a++)
                        //{
                        //    if(a != (int)f[i][j]) fprintf(of, " 0 ");
                        //    else fprintf(of, " 1 ");
                            
                        //}
                    
                }
            
            
            }
            
            fprintf(of, "]");
             int end = (int)tmp;
            fprintf(of,"MAX: %d",end);
            tmp=0;    



            int x= sFileProp.nColumns-amo;
            y++;    
            fprintf(of, "%c", '%'), fprintf(of, "%2d", y);
            if ( x == y  ){
            //fprintf(of, "%d", wrong);
            fprintf(of, "\n");
            x=0;
            y=0;    }
            fprintf(of, "\n");
            
                        
        }



mod edit: BENUTZE DIE BOARD TAGS SELBER

Dieser Post wurde am 03.07.2006 um 11:53 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.07.2006, 12:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


für nen maxwert...

ungetestet

C++:
//je nachdem wie es in deiner matrix steht... (erst spalten oder erst zeilen)
max = matrix[0][0];
for(i=0;i<anzahl_spalten;++i)
  for(j=0;j<anzahl_zeilen;++j)
     if(matrix[j][i]>max)
       max = matrix[j][i];


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.07.2006, 13:01 Uhr
~Speed2006
Gast


Danke das weiss ich aber ich lese aus eine Datei, den aus der Datei ist die Matrix

Trotzdem bekomme ich ein falschen ergebnis!
kannst du mal auf mein Code nachschauen

LG
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.07.2006, 13:50 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hab ich jetzt keine Zeit muss erst was für mein Geld tun...
Vielleicht komm ich heute abend dazu...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: