From 67fbeffb6f7dfadc1f2c702d2f44a9002aec1eb1 Mon Sep 17 00:00:00 2001 From: Markus Rosenstihl Date: Tue, 15 Apr 2014 22:00:36 +0200 Subject: [PATCH] fixed overwriting result parameter --- .hgignore | 1 + Makefile | 2 +- QDS.py | 13 +++++++++---- icons/qds_fit_abort.png | Bin 0 -> 15998 bytes 4 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 icons/qds_fit_abort.png diff --git a/.hgignore b/.hgignore index 28e3691..0b7121f 100644 --- a/.hgignore +++ b/.hgignore @@ -2,3 +2,4 @@ syntax: glob *.pyc .idea .DS_Store +fitresults.log diff --git a/Makefile b/Makefile index 875acef..8b92251 100644 --- a/Makefile +++ b/Makefile @@ -8,4 +8,4 @@ all: pyuic4 YAFFparameters.ui -o YAFFparameters.py pyuic4 YAFFConfig.ui -o YAFFConfig.py stats: - wc -l QDS.py ContainerWidgets.py Container.py libyaff.py mathlib.py data.py + wc -l QDS.py ContainerWidgets.py Container.py libyaff.py Mathlib.py Data.py diff --git a/QDS.py b/QDS.py index f4e49d4..2222ada 100755 --- a/QDS.py +++ b/QDS.py @@ -371,9 +371,9 @@ class AppWindow(QMainWindow): self.updatePlot() def fitData_start(self, method): - print method #fit_methods = [fit_odr_cmplx, fit_odr_imag, fit_lbfgsb, fit_anneal] - + self.fit_boundary_real.hide() + self.fit_boundary_imag.hide() fit_method = [ self._fit_method.fit_odr_cmplx, self._fit_method.fit_odr_imag, @@ -407,11 +407,16 @@ class AppWindow(QMainWindow): self.data.set_fit(odr_result.beta, funcs) self.ui.statusbar.showMessage(" ".join(odr_result.stopreason)) + ndx = 0 for i,fcn in enumerate(self.function_registry.get_registered_functions()): num_p = len(fcn.getParameter()) - beta = odr_result.beta[i:num_p+i] - sd_beta = odr_result.sd_beta[i:num_p+i] + beta = odr_result.beta[ndx:num_p+ndx] + sd_beta = odr_result.sd_beta[ndx:num_p+ndx] fcn.setParameter(beta, sd_beta) + ndx += num_p + + self.fit_boundary_real.show() + self.fit_boundary_imag.show() def getFileNames(self): tmp = QFileDialog.getOpenFileNames(self, "Open file", "", '*.dat *.TXT') diff --git a/icons/qds_fit_abort.png b/icons/qds_fit_abort.png new file mode 100644 index 0000000000000000000000000000000000000000..2d7f86d70be212849ab4e5bbee0331db32cd1aff GIT binary patch literal 15998 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 literal 0 HcmV?d00001