File: matlab2_demo.py

package info (click to toggle)
scitools 0.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 4,148 kB
  • ctags: 3,332
  • sloc: python: 34,714; sh: 112; makefile: 8
file content (55 lines) | stat: -rwxr-xr-x 1,905 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env python

from scitools.std import *

# We start with a simple example using the plot command:

x = linspace(-2,2,5)
plot(x,x**2,'b-s',title='Simple plot')
print get_script()

# As we can see, the result is no output. This is because the _replot method
# has not been called yet. However, we don't need to call this method
# explicitly. Instead we should call either show or hardcopy (both of which
# calls _replot). Here we use show:

show()
print get_script()

# We can now store these commands in a Matlab script by calling the save_m
# function:

save_m('mytest.m')

# In this case, the file mytest.m will be placed in the current working
# directory and we can then run the file in Matlab, e.g., with the following
# statement:

os.system("matlab -nojvm -nosplash -r mytest")

# Note that we skip the extension of the file name (.m). To get back to the
# Python prompt, we must first exit Matlab.

# Now we create a contour plot in combination with a quiver plot:

reset()  # remove the previous Matlab commands
xx, yy = ndgrid(linspace(-3,3,31), linspace(-3,3,31), sparse=False)
zz = peaks(xx, yy)
contour(xx,yy,zz,12,hold='on')
uu, vv = gradient(zz)
quiver(xx,yy,uu,vv,hold='off')
hardcopy('tmp0.ps',color=True)
save_m('mytest2.m')

# Here, we begin by calling reset(). This ensures that the string with the
# Matlab commands is empty before we start calling different plotting
# commands. After calling contour and quiver, we use the hardcopy command to
# store the plot to a PostScript file. As mentioned above, hardcopy calls
# _replot so there is no need to call show in this case. At the end we call
# save_m to store the Matlab commands in the file mytest2.m. We can then run
# the script as we did above:

os.system("matlab -nojvm -nosplash -r 'mytest2;quit'")

# In this case, we will be brought back to the Python prompt once Matlab
# has stored the plot in the file tmp0.ps.