Changeset b0c244f in mmcs for genericFunctions.cpp
- Timestamp:
- Sep 28, 2016, 3:44:48 PM (8 years ago)
- Branches:
- master
- Children:
- f2dac89
- Parents:
- b23848e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
genericFunctions.cpp
rdfabbb4 rb0c244f 7 7 */ 8 8 #include <genericFunctions.h> 9 10 using namespace Eigen; 9 11 10 12 … … 79 81 { 80 82 int contar = CuentaFila.count(accName); 81 tw->setSpan(i,0,contar,1); 83 qDebug()<<contar; 84 if(contar>1) 85 { 86 tw->setSpan(i,0,contar,1); 87 } 82 88 CuentaFila.removeAll(accName); 83 89 } … … 94 100 { 95 101 int contar = CuentaColumna.count(accName); 96 tw->setSpan(0,j,1,contar); 102 qDebug()<<contar; 103 if(contar>1) 104 { 105 tw->setSpan(0,j,1,contar); 106 } 97 107 CuentaColumna.removeAll(accName); 98 108 } … … 400 410 401 411 /** 402 @brief Funcion que permite 412 @brief Funcion que permite colocar filas/columnas como no editables 403 413 @date 08/09/2016 404 414 @author Rodrigo Boet … … 429 439 } 430 440 441 /** 442 @brief Funcion que extraer una submatriz de una tabla 443 @date 27/09/2016 444 @author Rodrigo Boet 445 @param <tw> Recibe el widget de la tabla 446 @param <nombre_fila> Recibe el nombre de la cuenta en fila 447 @param <nombre_columna> Recibe el nombre de la cuenta en columna 448 @param <matriz> Recibe la sub-matriz de donde se sacarán los valores 449 @return <result> Retorna la sub-matriz 450 */ 451 Eigen::MatrixXd extractSubMatriz(QTableWidget *tw, QString nombre_fila, QString nombre_columna, Eigen::MatrixXd Matrix) 452 { 453 int rows = tw->rowCount(); 454 Eigen::MatrixXd result; 455 int pos = 0; 456 for(int i = 2; i < rows ;i++) 457 { 458 bool entro = false; 459 int cant = 0; 460 QVector <double> values; 461 for(int j = 2; j < rows;j++) 462 { 463 if(tw->item(0,i)->text()==nombre_fila and tw->item(j,0)->text()==nombre_columna) 464 { 465 entro = true; 466 double value = Matrix(i-2,j-2); 467 values.append(value); 468 cant++; 469 } 470 } 471 if(entro) 472 { 473 result.resize(cant,cant); 474 for(int k=0;k<values.count();k++) 475 { 476 result(pos,k) = values.at(k); 477 } 478 pos++; 479 } 480 } 481 return result; 482 } 483 484 /** 485 @brief Funcion que extraer la diagonal principal de una matriz de Eigen 486 @date 28/09/2016 487 @author Rodrigo Boet 488 @param <matriz> Recibe la sub-matriz de donde se sacarán los valores 489 @return <resul> Retorna la suma de la diagonal 490 */ 491 QVector<double> extractDiagonal(Eigen::MatrixXd Matrix) 492 { 493 QVector<double> result; 494 for(int i=0;i<Matrix.rows();i++) 495 { 496 for(int j=0;j<Matrix.rows();j++) 497 { 498 if(i==j) 499 { 500 result.append(Matrix(i,j)); 501 } 502 } 503 } 504 return result; 505 } 506 507 /** 508 @brief Funcion que valida que la diagonal sea distinta de cero 509 @date 28/09/2016 510 @author Rodrigo Boet 511 @param <diagonal> Recibe el vector con la diagonal 512 @return <valida> Retorna verdadero si la diagonal es distinta de cero, falso en caso contrario 513 */ 514 bool validarDiagonal(QVector<double> diagonal) 515 { 516 int count = diagonal.count(); 517 bool valida = true; 518 for(int i=0;i<count;i++) 519 { 520 if(qAbs(diagonal.at(i))<0.00001) 521 { 522 valida = false; 523 } 524 } 525 return valida; 526 } 527 528 /** 529 @brief Funcion para llenar un vector con otro 530 @date 28/09/2016 531 @author Rodrigo Boet 532 @param <elements> Recibe el vector con los elementos 533 @param <vector> Recibe el vector que se llenara 534 */ 535 void appendElements(QVector<double> elements, QVector<double> &vector) 536 { 537 foreach (double value, elements) { 538 vector.append(value); 539 } 540 } 541
Note: See TracChangeset
for help on using the changeset viewer.