MatterElementAnalysis.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //
  2. // Created by Austin on 2023/10/11.
  3. //
  4. #ifndef ALGORITHM__MATTERELEMENTANALYSIS_H_
  5. #define ALGORITHM__MATTERELEMENTANALYSIS_H_
  6. #include <QVector>
  7. struct MEARange {
  8. int index; //指标号
  9. double min_value;
  10. double max_value;
  11. };
  12. typedef QVector<QVector<double> > MEAMat;
  13. typedef QVector<QVector<MEARange> > MEARangeMat;
  14. class MatterElementAnalysis {
  15. public:
  16. /**
  17. *
  18. * @param mat : 输入矩阵,一行代表一个样本, 每列对应一个指标
  19. * @param ranges : 各项指标的评价等级
  20. */
  21. MatterElementAnalysis(const MEAMat &mat, const MEARangeMat &ranges);
  22. void evaluate();
  23. const MEAMat &getRangeWeights() const;
  24. QVector<int> getBestIndex() const;
  25. int sample_num_; //样本数
  26. int index_num_; //指标数
  27. private:
  28. void associatedValue(int sam, int index, double value);
  29. void evaluationlevel(const QVector<double> &weights);
  30. MEAMat mat_;
  31. MEARangeMat ranges_;
  32. QVector<MEAMat> range_cvt_;
  33. MEAMat range_weights_;
  34. };
  35. #endif //ALGORITHM__MATTERELEMENTANALYSIS_H_