## Finding the greatest number in each row a matrix

Hi, everybody. Could some one please help find the greatest number in each row of a matrix, this is what i have so far.. am i one the right track? (using C code)

Float big;
Big = -9999999.99999

for( i==0) {
for( j = 0; j < n; j++) {
if( *(mat + (j*0) + 0) > big) {
bigc1 = *(mat + 0*j + 0);
}}
for( i==1) {
for( j = 0; j < n; j++) {
if( *(mat + (j*1) + 1) > big) {
bigc2 = *(mat + 1*j + 1);
}}
for( i==2) {
for( j = 0; j < n; j++) {
if( *(mat + (j*2) + 2) > big) {
bigc3 = *(mat + 2*j + 2);
}}
 PhysOrg.com science news on PhysOrg.com >> City-life changes blackbird personalities, study shows>> Origins of 'The Hoff' crab revealed (w/ Video)>> Older males make better fathers: Mature male beetles work harder, care less about female infidelity
 Recognitions: Gold Member Science Advisor There were enough issues to warrant a full example for a matrix [n] x [3]: Code: /* max per "row" */ #include #include /* we need DBL_MIN */ /* find max in each row of a matrix or table */ void max_per_row( double *result, double matrix[][3], const int xmax, const int ymax) { int x=0, y=0; for(y=0; y < ymax; y++) result[y]=DBL_MIN; for(y=0; y < ymax; y++) { for(x=0; x < xmax; x++) { if ( matrix[y][x] > result[y] ) result[y]=matrix[y][x]; } } } int main(int argc, char **argv) { double test1[3][3]={ {-10, -20, 0}, {-13, 0, 13}, {-99, 99.99, 100.01}}; double result[10]={0}; int y=0; max_per_row(result, test1, 3, 3 ); for(y=0; y < 3 ; y++) printf("max row %d = %f\n", y, result[y]); return 0; }
 Admin Why do you (both) use DBL_MIN? If you are looking for the greatest number you can use first number from the row as an initial value. That saves one comparison per each row. Or am I missing something? Borek -- http://www.chembuddy.com http://www.ph-meter.info

Recognitions:
Gold Member

## Finding the greatest number in each row a matrix

 Quote by Borek Why do you (both) use DBL_MIN? If you are looking for the greatest number you can use first number from the row as an initial value. That saves one comparison per each row. Or am I missing something?
I implemented the OP's program in the way he wrote it. Yes, using the first value does eliminate one comparison.

Code:
         for(x=1, result[y]=matrix[y][0]; x < xmax; x++)
{
if ( matrix[y][x] > result[y] )
result[y]=matrix[y][x];
}
To be closer to bulletproof: isnan() or something like it should be in there too. Which adds more overhead back in to the mix. This code is devoid of checks. INF and NAN values may cause problems

 Similar discussions for: Finding the greatest number in each row a matrix Thread Forum Replies General Math 0 Linear & Abstract Algebra 8 Linear & Abstract Algebra 0 Calculus & Beyond Homework 1 Introductory Physics Homework 6