diff --git a/pykat/finesse.py b/pykat/finesse.py index b43fa904eb88d7a6d238db816812caf5a946fb8b..5d227dba85482d52d668fefcc95841b4eeaad40e 100644 --- a/pykat/finesse.py +++ b/pykat/finesse.py @@ -75,17 +75,27 @@ class katRun(object): def __getitem__(self, value): idx = [i for i in range(len(self.ylabels)) if self.ylabels[i].split(" ")[0] == str(value)] - - if len(idx) == 1 and len(self.y.shape) == 1: - return self.y + + if len(idx) > 0 and self.y.shape == (): + # In the case we have a noxaxis and just one output... + return float(self.y) + elif len(idx) == 1 and len(self.y.shape) >= 1: + + # only selecting a single output from a 1D array + if self.y.size == 1: + return self.y + else: + return self.y[idx[0]] + + elif len(idx) > 0 and len(self.y.shape) == 1: return self.y[idx] elif len(idx) > 0: return self.y[:,idx].squeeze() - elif len(idx) == 1: + elif len(idx) >= 1: return self.y[:,idx].squeeze() else: - raise pkex.BasePyKatException("No output by the name {0} found".format(str(value))) + raise pkex.BasePyKatException("No output by the name '{0}' found in the output".format(str(value))) class katRun2D(object): def __init__(self):