29 CVector::operator=(mp);
45 CVector::operator=(mp);
52 CVector::operator=(mp);
59 CVector::operator=(mp);
69 QJsonArray elementlabels;
70 for (
int i=0; i<getsize(); i++)
73 elementlabels.append(QString::fromStdString(
labels[i]));
76 out[
"Labels"] = elementlabels;
83 QJsonArray array = jsonobject[
"Vector"].toArray();
84 QJsonArray elementlabels = jsonobject[
"Labels"].toArray();
85 vec.resize(array.size());
87 labels.resize(array.size());
88 for (
unsigned int i=0; i<array.size(); i++)
90 vec[i]=array[i].toDouble();
91 labels[i]=elementlabels[i].toString().toStdString();
94 if (jsonobject.contains(
"XAxisLabel"))
99 if (jsonobject.contains(
"YAxisLabel"))
112 {
for (
int j=0; j<getsize(); j++)
114 out +=
labels[j] +
"," + QString::number(
valueAt(j)).toStdString()+
"\n";
118 {
for (
int j=0; j<getsize(); j++)
121 out +=
labels[j] +
", Fail \n";
123 out +=
labels[j] +
", Pass \n";
132 file->write(QString::fromStdString(
ToString()).toUtf8());
138 return CVector::operator[](i);
143 for (
int i=0; i<getsize(); i++)
151 for (
int i=0; i<getsize(); i++)
159 QTableWidget *tablewidget =
new QTableWidget();
160 tablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
161 tablewidget->setColumnCount(1);
162 tablewidget->setRowCount(getsize());
163 QStringList rowheaders;
164 QStringList colheaders;
168 for (
int i=0; i<getsize(); i++)
170 rowheaders << QString::fromStdString(
labels[i]);
172 { tablewidget->setItem(i,0,
new QTableWidgetItem(QString::number(
valueAt(i))));
177 tablewidget->item(i,0)->setForeground(QColor(Qt::red));
184 tablewidget->setItem(i,0,
new QTableWidgetItem(
"Fail"));
186 tablewidget->setItem(i,0,
new QTableWidgetItem(
"Pass"));
191 tablewidget->setHorizontalHeaderLabels(colheaders);
192 tablewidget->setVerticalHeaderLabels(rowheaders);
206 if (sortvector.getsize()==0)
209 eliminated = sortvector;
211 for (
int i=0; i<getsize(); i++)
215 eliminated = eliminated.
Eliminate(max_element);
222 if (sortvector.getsize()==0)
225 eliminated = sortvector;
227 for (
int i=0; i<getsize(); i++)
231 eliminated = eliminated.
Eliminate(max_element);
239 for (
int i=0; i<getsize(); i++)
252 for (
int i=0; i<getsize(); i++)
264 for (
int i=0; i<getsize(); i++)
266 if (
Label(i)!=element)
283 for (
int i=0; i<
size(); i++)
295 for (
int i = 1; i <
size(); i++)
306 for (
int i=start; i<=end; i++)
Vector class with string labels for Chemical Mass Balance analysis.
CMBVector & operator=(const CMBVector &mp)
Assignment operator from CMBVector.
CVector toVector() const
Converts to base CVector type (without labels)
QTableWidget * ToTable() override
Creates a QTableWidget for displaying vector data.
CMBVector Eliminate(const string &element) const
Creates new vector with specified element removed.
bool writetofile(QFile *file) override
Writes vector to file in CSV format.
void SetLabels(const vector< string > &label)
Sets all element labels at once.
vector< string > labels
Labels for each element.
QJsonObject toJsonObject() const override
Serializes vector to JSON format.
CMBVector Extract(int start, int end) const
Extracts a range of elements by index.
CMBVector ExtractWithinRange(const double &lowval, const double &highval) const
Extracts elements with values within specified range.
string MaxAbsElement() const
Finds label of element with maximum absolute value.
string ToString() const override
Converts vector to CSV-formatted string.
CMBVector Sort(const CMBVector &sortvector=CMBVector()) const
Sorts vector by values in descending order.
string MaxElement() const
Finds label of element with maximum value.
bool ReadFromJsonObject(const QJsonObject &jsonobject) override
Deserializes vector from JSON format.
CMBVector ExtractUpToMinimum() const
Extracts elements up to first minimum value.
int size() const
Gets number of elements in vector.
void append(const string &label, const double &val)
Appends a labeled element to the vector.
CMBVector()
Default constructor - creates an empty vector.
bool boolean_values
Display values as Pass/Fail instead of numbers.
CMBVector AbsSort(const CMBVector &sortvector=CMBVector()) const
Sorts vector by absolute values in descending order.
double valueAt(int i) const
Gets value at specified index.
string Label(int i) const
Gets label at specified index.
vector< string > Labels() const
Gets all element labels.
int LookupLabel(const string &label) const
Finds index of element with given label.
Abstract base class providing common serialization and visualization interface.
double lowlimit
Lower threshold for value highlighting (when enabled)
QString XAxisLabel() const
Get the X-axis label.
bool SetXAxisLabel(const QString &label)
Set the X-axis label.
QString YAxisLabel() const
Get the Y-axis label.
bool highlightoutsideoflimit
Flag indicating whether to highlight values outside defined limits.
double highlimit
Upper threshold for value highlighting (when enabled)
CMBVector operator/(const CMBVector &V1, double d)
Vector-scalar division operator.
CMBVector operator*(const CMBVector &V1, const CMBVector &V2)
Element-wise vector multiplication operator.
CMBVector operator+(const CMBVector &V1, const CMBVector &V2)
Vector addition operator.
CMBVector operator-(const CMBVector &V1, const CMBVector &V2)
Vector subtraction operator.