summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/pgfplots/scripts/matlab2pgfplots.sh
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/pgfplots/scripts/matlab2pgfplots.sh')
-rwxr-xr-xgraphics/pgf/contrib/pgfplots/scripts/matlab2pgfplots.sh79
1 files changed, 79 insertions, 0 deletions
diff --git a/graphics/pgf/contrib/pgfplots/scripts/matlab2pgfplots.sh b/graphics/pgf/contrib/pgfplots/scripts/matlab2pgfplots.sh
new file mode 100755
index 0000000000..c821171940
--- /dev/null
+++ b/graphics/pgf/contrib/pgfplots/scripts/matlab2pgfplots.sh
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+
+CONVERT_STYLES=1
+CONVERT_AXES=1
+OUTFILE=""
+MAXPOINTS=100000
+
+echoHelp()
+{
+ echo "matlab2pgfplots.sh [--maxpoints N] [--styles [0|1] ] [ --axes [0|1] ] [ -o OUTFILE ] INFILE ..."
+ echo "converts Matlab figures (.fig-files) to pgfplots-files (.pgf-files)."
+ echo "This script is a front-end for matlab2pgfplots.m (which needs to be in matlab's search path)"
+ echo "type"
+ echo " >> help matlab2pgfplots"
+ echo "at your matlab prompt for more information."
+ exit 0
+}
+
+LONGOPTS="styles:,axes:,help,maxpoints:"
+SHORTOPTS="o:"
+ARGS=`getopt -l "$LONGOPTS" "$SHORTOPTS" "$@"`
+if [ $? -ne 0 ]; then
+ echo "`basename $0`: Could not process command line arguments. Use the '--help' option for documentation."
+ exit 1
+fi
+
+eval set -- "$ARGS"
+while [ $# -gt 0 ]; do
+ ARG=$1
+ # echo "PROCESSING OPTION '$ARG' (next = $@)"
+ case "$ARG" in
+ --maxpoints) shift; MAXPOINTS=$1; shift;;
+ --styles) shift; CONVERT_STYLES="$1"; shift;;
+ --axes) shift; CONVERT_AXES="$1"; shift;;
+ -o) shift; OUTFILE="$1"; shift;;
+ --help) shift; echoHelp;;
+ --) shift; break;;
+ *) break;
+ esac
+done
+
+if [ $# -eq 0 ]; then
+ echo "No input files specified."
+ exit 1
+fi
+
+HAS_OUTFILE=0
+if [ $# -gt 1 -a -n "$OUTFILE" ]; then
+ HAS_OUTFILE=1
+fi
+
+for A; do
+ INFILE="$A"
+ if [ $HAS_OUTFILE -eq 0 ]; then
+ OUTFILE="${INFILE%%.*}.pgf"
+ fi
+ echo "$INFILE -> $OUTFILE ... "
+
+ M_LOGFILE=`mktemp`
+ matlab -nojvm -nodesktop -nosplash 1>/dev/null 2>&1 -logfile $M_LOGFILE <<-EOF
+ f=hgload( '$INFILE' );
+ matlab2pgfplots( '$OUTFILE', 'fig', f, 'styles', $CONVERT_STYLES, 'axes', $CONVERT_AXES, 'maxpoints', $MAXPOINTS );
+ exit
+ EOF
+ grep -q "Error" $M_LOGFILE
+ CODE=$?
+ if [ $CODE -eq 0 ]; then
+ echo "Matlab output:" 1>&2
+ cat $M_LOGFILE 1>&2
+ CODE=1
+ else
+ CODE=0
+ fi
+ rm -f $M_LOGFILE
+ if [ $CODE -ne 0 ]; then
+ exit $CODE
+ fi
+done