[SciPy-user] Re: io.loadmat
Nils Wagner
nwagner at mecha.uni-stuttgart.de
Wed Oct 15 04:46:28 EDT 2003
Andrew Straw schrieb:
>
> John Hunter wrote:
> >>>>>>"Nils" == Nils Wagner <wagner.nils at vdi.de> writes:
> >
> >
> > Nils> Thank you for your note. However, I am not the right person
> > Nils> for doing that. It would be great if someone else can do
> > Nils> that. Thanks in advance.
> >
> >
> > Have you seen matfile? It will load matlab version 5 into Numeric
> > arrays
> >
> > See
> > http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&threadm=m3g09ck23n.fsf%40nmw-office.ion.le.ac.uk&rnum=2&prev=/groups%3Fnum%3D20%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26safe%3Doff%26q%3Dmatfile%2Bpython%26sa%3DN%26tab%3Dwg
> >
> > and the src at ftp://ion.le.ac.uk/matfile/matfile.tar.gz
>
> Cool! I hadn't seen that before, and it seems to work on the simple
> test case I tried. I made a setup script rather than fiddling with the
> Makefile. This seems like a useful enough utility that it should get
> wider exposure. Too bad it can't be incorporated into scipy as is (GPL
> vs. BSD license issues...).
>
> #!/usr/bin/env python
> """Setup script for matfile
> """
>
> from distutils.core import setup, Extension
> import distutils.sysconfig
> import os
>
> numpy_inc_dir = os.path.join(distutils.sysconfig.get_python_inc(),'Numeric')
> matfile_dir = 'matfile' # off current directory
>
> matfile_srcs = ['mat_open.c', 'mat_read_array.c', 'mat_copy_data.c',
> 'mat_free_array.c', 'mat_read_array4.c', 'mat_write_array4.c',
> 'mat_read_array5.c', 'mat_subarray5.c', 'mat_utils5.c']
> matfile_srcs = [ os.path.join(matfile_dir,src) for src in matfile_srcs ]
>
> setup(name="matfile",
> description = "MATLAB .mat file reader for Python",
> author = "Nigel Wade",
> author_email = "nmw at ion.le.ac.uk",
> license = "GNU GPL",
> ext_modules = [Extension(name='matfile',
> sources=['matfilemodule.c']+matfile_srcs,
> include_dirs=[matfile_dir,
> numpy_inc_dir])])
>
I have modified the Makefiles for SuSE8.2 (see the attachment). Finally,
I was able to build the module.
How about the location of the modules ? Shall I copy this stuff to
/usr/local/lib/python2.1/site-packages/matfile ?
How do I use the module in scipy ?
Sorry, I am a newbie to these things.
In
~/mysoftware/matfile
I have
-rw-r--r-- 1 wagner users 1358 2003-10-15 10:20 Makefile
-rw-r--r-- 1 wagner users 1358 2003-10-15 10:18 Makefile.ori
lrwxrwxrwx 1 wagner users 15 2003-10-15 10:34
libmatfile.so -> libmatfile.so.0
-rwxr-xr-x 1 wagner users 87247 2003-10-15 10:34
libmatfile.so.0
drwxr-xr-x 2 wagner users 806 2003-10-15 10:34 matfile
-rw-r--r-- 1 wagner users 16376 2001-09-24 17:34
matfilemodule.c
-rw-r--r-- 1 wagner users 8692 2003-10-15 10:34
matfilemodule.o
lrwxrwxrwx 1 wagner users 18 2003-10-15 10:34
matfilemodule.so -> matfilemodule.so.0
-rwxr-xr-x 1 wagner users 1620346 2003-10-15 10:34
matfilemodule.so.0
Any suggestion ?
Nils
> ------------------------------------------------------------------------
> Part 1.1.2Type: application/pgp-signature
>
> Part 1.2 Type: Plain Text (text/plain)
> Encoding: 7bit
-------------- next part --------------
TOP=.
PYTHON_INCLUDE = /usr/local/include/python2.1
PYTHON_LIBDIR = /usr/local/lib/python2.1/config
PYTHON_LIBS = -lpython2.1 -ldb -lutil -lpthread -lnsl -ldl -lm
VERSION=0
SHARED_DSO=-shared
DSO_NAME=-Wl,-h,$(@F)
DSO_SYMBOLIC=
LINK_TYPE=dynamic
SRCS = matfilemodule.c
OBJS = $(SRCS:%.c=%.o)
CFLAGS += -I$(PYTHON_INCLUDE) -I$(PYTHON_INCLUDE)/Numeric -Imatfile
LIBS += -L$(PYTHON_LIBDIR) $(PYTHON_LIBS) -L. -lmatfile
LIBNAME=matfilemodule
DIR = .
LIB = $(DIR)/$(LIBNAME)
LIB.so = $(LIB).so
lib$(LIBNAME) : matfile $(LINK_TYPE)
dynamic : $(LIB.so)
matfile : FORCE
(cd matfile; $(MAKE))
$(LIB.so) : $(LIB.so).$(VERSION)
@(if [ -h $@ -o -f $@ ]; then /bin/rm $@; fi; \
if [ -f $? ]; then ln -s $(?F) $@; fi; \
exit 0)
$(LIB.so).$(VERSION) : $(OBJS)
$(LINK.c) $(SHARED_DSO) $(DSO_SYMBOLIC) $(DSO_NAME) -o $@ $(OBJS) $(LIBS)
depend : FORCE
@sed -n -e '/^# DO NOT DELETE THIS LINE -- make depend depends on it./q;p' Makefile > Makefile.new
@echo "# DO NOT DELETE THIS LINE -- make depend depends on it." >> Makefile.new
@$(COMPILE.c) $(DEPEND) $(OPTIONS) $(INCLUDE_FLAGS) $(SRCS) >> Makefile.new
@cp Makefile Makefile.bak
@cp Makefile.new Makefile
clean : FORCE
/bin/rm -f $(OBJS)
veryclean veryveryclean: clean
/bin/rm -f $(LIB.so) $(LIB.so).$(VERSION) $(LIB.a)
FORCE:
# DO NOT DELETE THIS LINE -- make depend depends on it.
-------------- next part --------------
TOP=..
VERSION=0
SHARED_DSO=-shared
DSO_NAME=-Wl,-h,$(@F)
DSO_SYMBOLIC=
LINK_TYPE=dynamic
MAKEDEPEND=makedepend -- $(CFLAGS) -- $(INCLUDE_FLAGS) $(OPTIONS)
LIBNAME=matfile
DIR = ..
LIB = $(DIR)/lib$(LIBNAME)
LIB.so = $(LIB).so
LIB.a = $(LIB).a
SRCS = mat_open.c mat_read_array.c mat_copy_data.c mat_free_array.c \
mat_read_array4.c mat_write_array4.c \
mat_read_array5.c mat_subarray5.c mat_utils5.c
OBJS = $(SRCS:%.c=%.o)
lib$(LIBNAME) : $(LINK_TYPE)
dynamic : $(LIB.so)
static : $(LIB.a)
$(LIB.a) : $(LIB.a)($(OBJS))
$(LIB.so) : $(LIB.so).$(VERSION)
@(if [ -h $@ -o -f $@ ]; then /bin/rm $@; fi; \
if [ -f $? ]; then ln -s $(?F) $@; fi; \
exit 0)
$(LIB.so).$(VERSION) : $(OBJS)
$(LINK.c) $(SHARED_DSO) $(DSO_SYMBOLIC) $(DSO_NAME) -o $@ $(OBJS) $(RUNPATH)
$(LIB.a)(%.o) : %.o
ar -rs $@ $<
@$(RANLIB) $@
%.o : %.c
$(COMPILE.c) $<
install : install_$(LINK_TYPE)
install_static : FORCE
@$cp $(LIB.a) $(LIBDIR)
install_dynamic : FORCE
@cp $(LIB.so).$(VERSION) $(LIBDIR)
@(cd $(LIBDIR); \
if [ -h lib$(LIBNAME).so -o -f lib$(LIBNAME).so ]; then /bin/rm lib$(LIBNAME).so; fi; \
if [ -f lib$(LIBNAME).so.$(VERSION) ]; then ln -s lib$(LIBNAME).so.$(VERSION) lib$(LIBNAME).so; fi)
depend : FORCE
$(MAKEDEPEND) $(SRCS)
clean : FORCE
/bin/rm -f $(OBJS)
veryclean veryveryclean: clean
/bin/rm -f $(LIB.so) $(LIB.so).$(VERSION) $(LIB.a)
FORCE:
# DO NOT DELETE THIS LINE -- make depend depends on it.
mat_open.o: /usr/include/stdlib.h /usr/include/features.h
mat_open.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_open.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_open.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
mat_open.o: /usr/include/sys/types.h /usr/include/bits/types.h
mat_open.o: /usr/include/time.h /usr/include/endian.h
mat_open.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_open.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_open.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
mat_open.o: /usr/include/stdio.h
#mat_open.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_open.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_open.o: /usr/include/libio.h /usr/include/_G_config.h
mat_open.o: /usr/include/bits/stdio_lim.h /usr/include/limits.h
mat_open.o: /usr/include/bits/posix1_lim.h /usr/include/bits/local_lim.h
mat_open.o: /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h
mat_open.o: /usr/include/ctype.h matfile.h
mat_read_array.o: /usr/include/stdlib.h /usr/include/features.h
mat_read_array.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_read_array.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_read_array.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
mat_read_array.o: /usr/include/sys/types.h /usr/include/bits/types.h
mat_read_array.o: /usr/include/time.h /usr/include/endian.h
mat_read_array.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_read_array.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_read_array.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
mat_read_array.o: /usr/include/stdio.h
#mat_read_array.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_read_array.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_read_array.o: /usr/include/libio.h /usr/include/_G_config.h
mat_read_array.o: /usr/include/bits/stdio_lim.h /usr/include/assert.h
mat_read_array.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
mat_read_array.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
mat_read_array.o: /usr/include/bits/posix2_lim.h matfile.h
mat_copy_data.o: /usr/include/stdlib.h /usr/include/features.h
mat_copy_data.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_copy_data.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_copy_data.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
mat_copy_data.o: /usr/include/sys/types.h /usr/include/bits/types.h
mat_copy_data.o: /usr/include/time.h /usr/include/endian.h
mat_copy_data.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_copy_data.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_copy_data.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h matfile.h
mat_copy_data.o: /usr/include/stdio.h
#mat_copy_data.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_copy_data.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_copy_data.o: /usr/include/libio.h /usr/include/_G_config.h
mat_copy_data.o: /usr/include/bits/stdio_lim.h
mat_free_array.o: matfile.h /usr/include/stdio.h /usr/include/features.h
mat_free_array.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_free_array.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_free_array.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
#mat_free_array.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_free_array.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_free_array.o: /usr/include/bits/types.h /usr/include/libio.h
mat_free_array.o: /usr/include/_G_config.h /usr/include/bits/stdio_lim.h
mat_read_array4.o: /usr/include/stdlib.h /usr/include/features.h
mat_read_array4.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_read_array4.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_read_array4.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
mat_read_array4.o: /usr/include/sys/types.h /usr/include/bits/types.h
mat_read_array4.o: /usr/include/time.h /usr/include/endian.h
mat_read_array4.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_read_array4.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_read_array4.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
mat_read_array4.o: /usr/include/stdio.h
#mat_read_array4.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_read_array4.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_read_array4.o: /usr/include/libio.h /usr/include/_G_config.h
mat_read_array4.o: /usr/include/bits/stdio_lim.h /usr/include/assert.h
mat_read_array4.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
mat_read_array4.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
mat_read_array4.o: /usr/include/bits/posix2_lim.h matfile.h
mat_write_array4.o: /usr/include/stdio.h /usr/include/features.h
mat_write_array4.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_write_array4.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_write_array4.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
#mat_write_array4.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_write_array4.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_write_array4.o: /usr/include/bits/types.h /usr/include/libio.h
mat_write_array4.o: /usr/include/_G_config.h /usr/include/bits/stdio_lim.h
mat_write_array4.o: /usr/include/stdlib.h /usr/include/sys/types.h
mat_write_array4.o: /usr/include/time.h /usr/include/endian.h
mat_write_array4.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_write_array4.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_write_array4.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
mat_write_array4.o: matfile.h
mat_read_array5.o: /usr/include/stdlib.h /usr/include/features.h
mat_read_array5.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_read_array5.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_read_array5.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
mat_read_array5.o: /usr/include/sys/types.h /usr/include/bits/types.h
mat_read_array5.o: /usr/include/time.h /usr/include/endian.h
mat_read_array5.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_read_array5.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_read_array5.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
mat_read_array5.o: /usr/include/stdio.h
#mat_read_array5.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_read_array5.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_read_array5.o: /usr/include/libio.h /usr/include/_G_config.h
mat_read_array5.o: /usr/include/bits/stdio_lim.h /usr/include/assert.h
mat_read_array5.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
mat_read_array5.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
mat_read_array5.o: /usr/include/bits/posix2_lim.h matfile.h
mat_subarray5.o: /usr/include/stdlib.h /usr/include/features.h
mat_subarray5.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
#mat_subarray5.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_subarray5.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
mat_subarray5.o: /usr/include/sys/types.h /usr/include/bits/types.h
mat_subarray5.o: /usr/include/time.h /usr/include/endian.h
mat_subarray5.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_subarray5.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_subarray5.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
mat_subarray5.o: /usr/include/stdio.h
#mat_subarray5.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_subarray5.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_subarray5.o: /usr/include/libio.h /usr/include/_G_config.h
mat_subarray5.o: /usr/include/bits/stdio_lim.h /usr/include/assert.h
mat_subarray5.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
mat_subarray5.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
mat_subarray5.o: /usr/include/bits/posix2_lim.h matfile.h
mat_utils5.o: /usr/include/limits.h /usr/include/features.h
mat_utils5.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
mat_utils5.o: /usr/include/bits/posix1_lim.h /usr/include/bits/local_lim.h
mat_utils5.o: /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h
mat_utils5.o: /usr/include/stdlib.h
#mat_utils5.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
mat_utils5.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stddef.h
mat_utils5.o: /usr/include/sys/types.h /usr/include/bits/types.h
mat_utils5.o: /usr/include/time.h /usr/include/endian.h
mat_utils5.o: /usr/include/bits/endian.h /usr/include/sys/select.h
mat_utils5.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mat_utils5.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
mat_utils5.o: /usr/include/string.h matfile.h /usr/include/stdio.h
#mat_utils5.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
mat_utils5.o: /usr/lib/gcc-lib/i486-suse-linux/3.3/include/stdarg.h
mat_utils5.o: /usr/include/libio.h /usr/include/_G_config.h
mat_utils5.o: /usr/include/bits/stdio_lim.h
More information about the SciPy-User
mailing list