# HG changeset patch # User nikcleju # Date 1321368658 0 # Node ID e8c4672e9de4400bb4f1b4cfb21b5e75fbe629ae # Parent 116dcfacd1cca2696867813eed24a34841cca023 Save algonames (not tested) in output mat file Matplotlib saves tight images (bbox_inches = 'tight') utils.py: added loadsavematrices, modified loadshowmatrices diff -r 116dcfacd1cc -r e8c4672e9de4 scripts/ABSapprox.py --- a/scripts/ABSapprox.py Fri Nov 11 16:12:17 2011 +0000 +++ b/scripts/ABSapprox.py Tue Nov 15 14:50:58 2011 +0000 @@ -307,6 +307,7 @@ tosave['numvects'] = numvects tosave['SNRdb'] = SNRdb tosave['lambdas'] = lambdas + tosave['algonames'] = [algotuple[1] for algotuple in algosN+algosL] try: scipy.io.savemat(savedataname, tosave) except: @@ -319,7 +320,7 @@ plt.imshow(meanmatrix[algoname], cmap=cm.gray, interpolation='nearest',origin='lower') if dosaveplot: for ext in saveplotexts: - plt.savefig(saveplotbase + algoname + '.' + ext) + plt.savefig(saveplotbase + algoname + '.' + ext, bbox_inches='tight') for algotuple in algosL: algoname = algotuple[1] for ilbd in np.arange(lambdas.size): @@ -327,7 +328,7 @@ plt.imshow(meanmatrix[algoname][ilbd], cmap=cm.gray, interpolation='nearest',origin='lower') if dosaveplot: for ext in saveplotexts: - plt.savefig(saveplotbase + algoname + ('_lbd%.0e' % lambdas[ilbd]) + '.' + ext) + plt.savefig(saveplotbase + algoname + ('_lbd%.0e' % lambdas[ilbd]) + '.' + ext, bbox_inches='tight') if doshowplot: plt.show() diff -r 116dcfacd1cc -r e8c4672e9de4 scripts/utils.py --- a/scripts/utils.py Fri Nov 11 16:12:17 2011 +0000 +++ b/scripts/utils.py Tue Nov 15 14:50:58 2011 +0000 @@ -9,17 +9,61 @@ import matplotlib.pyplot as plt import matplotlib.cm as cm -def loadshowmatrices(filename, algostr = ('GAP','SL0_approx')): +def loadshowmatrices(filename, algonames = None): mdict = scipy.io.loadmat(filename) - for strname in algostr: - print strname - if mdict['meanmatrix'][strname][0,0].ndim == 2: + if algonames == None: + algonames = ('GAP','SL0_approx') + else: + algonames = mdict['algonames'] + + for algonameobj in algonames: + algoname = algonames[0,0][0] + print algoname + if mdict['meanmatrix'][algoname][0,0].ndim == 2: plt.figure() - plt.imshow(mdict['meanmatrix'][strname][0,0], cmap=cm.gray, interpolation='nearest',origin='lower') - elif mdict['meanmatrix'][strname][0,0].ndim == 3: - for matrix in mdict['meanmatrix'][strname][0,0]: + plt.imshow(mdict['meanmatrix'][algoname][0,0], cmap=cm.gray, interpolation='nearest',origin='lower') + elif mdict['meanmatrix'][algoname][0,0].ndim == 3: + for matrix in mdict['meanmatrix'][algoname][0,0]: plt.figure() plt.imshow(matrix, cmap=cm.gray, interpolation='nearest',origin='lower') plt.show() print "Finished." + +def loadsavematrices(filename, saveplotbase, saveplotexts, algonames = None): + + mdict = scipy.io.loadmat(filename) + lambdas = mdict['lambdas'] + + if algonames is None: + algonames = mdict['algonames'] + + for algonameobj in algonames: + algoname = algonameobj[0][0] + print algoname + if mdict['meanmatrix'][algoname][0,0].ndim == 2: + plt.figure() + plt.imshow(mdict['meanmatrix'][algoname][0,0], cmap=cm.gray, interpolation='nearest',origin='lower') + for ext in saveplotexts: + plt.savefig(saveplotbase + algoname + '.' + ext, bbox_inches='tight') + elif mdict['meanmatrix'][algoname][0,0].ndim == 3: + ilbd = 0 + for matrix in mdict['meanmatrix'][algoname][0,0]: + plt.figure() + plt.imshow(matrix, cmap=cm.gray, interpolation='nearest',origin='lower') + for ext in saveplotexts: + plt.savefig(saveplotbase + algoname + ('_lbd%.0e' % lambdas[ilbd]) + '.' + ext, bbox_inches='tight') + ilbd = ilbd + 1 + print "Finished." +def appendtomatfile(filename, toappend, toappendname): + mdict = scipy.io.loadmat(filename) + mdict[toappendname] = toappend + try: + scipy.io.savemat(filename, mdict) + except: + print "Save error" + + # To save to a cell array, create an object array: + # >>> obj_arr = np.zeros((2,), dtype=np.object) + # >>> obj_arr[0] = 1 + # >>> obj_arr[1] = 'a string' \ No newline at end of file