Newer
Older
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
# Comparison of Python and Matlab
Originally from [this page](http://reactorlab.net/resources-folder/matlab/P_to_M.html)
but modified to fix some errors and add more detail.
Python | Matlab
# numeric variables | % numeric variables
# are double precision by default | % are double precision by default
|
a = 5.0 | a = 5.0;
|
# repeat which assigns values to array elements |
# arrays are known as "lists" in Python | % array indexes start at 1 in Matlab
# array indexes start at 0 in Python | % indentation is for readability only
# structures are defined by indentation, no 'end' |
| for i=1:10
A = [] # initialize array A | A(i) = i;
for i in range(1,11): | end
A.append(i) | A % display contents of A
print(A[i-1]) |
|
# repeat which prints a series of |
# values | for i=0:2:10
| fprintf(' %i \n', i)
for i in range(0,11,2): | end
print(i) |
|
# initialize an identity matrix |
| % MATLAB has built-in functions for
# import the numpy library for matrix operations | % common array initializations
|
import numpy as np | B = eye(100);
|
B = np.identity(3) |
|
# declare and initialize an array, | C = [1, 2, 3]; % or C = [1 2 3];
# known as a list in Python |
|
C = [1, 2, 3] |
|
# initialize and print an array |
# array name = arange(start,stop,step) | % array name = [start:increment:end];
|
import numpy as np |
C = np.arange(2,10,2) | C = [2:2:8] % leave off ; to display value
print(C) |
|
# print an array element on screen |
# array indexes start at 0 | % array indexes start at 1
|
print(C[1]) | C(2)
|
# prints 4 using C from above table cell | % prints 4 using C from above table cell
# note square brackets C[1] | % note parentheses C(2)
|
# declare and initialize an array |
# with fixed interval between values |
import numpy as np |
C = np.linspace(2,8,4) | C = linspace(2,8,4);
# third param is optional and = # points |
# between and including 1st two points | % third param is optional and = # points
# if third param left off, default | % between and including 1st two points
# is 50 points | % if third param left off, default
| % is 100 points
# initialize a 2D array | % these three examples accomplish the
| % same thing
|
D = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] | D = [1 2 3; 4 5 6; 7 8 9];
| D = [1:3; 4:6; 7:9];
| D = [1 2 3
| 4 5 6
| 7 8 9];
# print element of 2D array | % array indexes start at 1
# array indexes start at 0 |
print(D[1][1]) # row 2, column 2 |
# prints 5 using D from above table cell | D(2,2) % row 2, column 2
| % prints 5 using D from above table cell
# print selected sub array of 2D array |
# e.g., print rows 1 to 2 of column 1 |
| D(1:2,1) % rows 1 to 2 of column 1
for i in range(0,2): |
print(D[i][0]) |
|
# print all rows of column 1 of 2D |
# array |
|
import numpy as np | D(:,1) % all rows, column 1
D = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) |
Dsub = D[0:,0:1] |
print(Dsub) |
|
# logical expression |
|
a = 1 | a = 1
b = 2 | b = 2;
if a == 1 or b == 3: | if a == 1 || b == 3
print('a = 2 or b = 3') | fprintf('a = 2 or b = 3 \n');
| end
|
# if structure |
|
if a == 1 and b != 3: | if a == 1 && b ~= 3
print('a=1 and b not 3'); | fprintf('a=1 and b not 3 \n');
print('OK?') | fprintf('OK? \n');
| end
|
# if, else structure |
| a ~= 1
if a != 1: | fprintf('a is not 1 \n')
print('a is not 1') | elseif b ~= 3
elif b != 3: | fprintf('b is not 3 \n')
print('b is not 3') | else
else: | fprintf('huh? \n')
print('huh?') | end
|
# switch structure |
| switch menuChoice
# Python doesn't have a switch structure | case 1
| % can do any actions in a case, e.g.,
# any switch structure can be | % call a user-defined function
# written as an if-else structure | myMenuFunc01();
| case 2
# switch structures may be quicker to | myMenuFunc02();
# read and write for applications such as menus | case 3
| myMenuFunc03();
| otherwise
| fprintf('invalid selection, try again')
| end
|
# program which calls a user-defined function | % main program and function definition must
| % be in separate files and function file
# define function, here I chose name myfunc | % must have same name as function name
|
def myfunc(x,y): | z = myfunc(2,3)
return x**y # ** is exponentiation operator | % prints 8 for this input
|
# call function | ----- LISTING OF FILE myfunc.m ------
|
z = myfunc(2,3) | function returnValue = myfunc(x,y)
print(z) | returnValue = x^y; % ^ is exponentiation operator
# prints 8 for this input |
| % function is a keyword
| % returnValue is arbitrary variable name
|
# matrix multiplication |
|
import numpy as np |
| A = [2,3; 3,5];
A = np.matrix( ((2,3), (3, 5)) ) | B = [1,2; 5,-1];
B = np.matrix( ((1,2), (5, -1)) ) |
| C = A * B
C = A * B |
print(C) |
|
# plotting |
|
import numpy as np |
import matplotlib.pyplot as plt |
x = np.linspace(0,2*np.pi,100) | x = linspace(0,2*pi,100);
y = np.sin(x) | y = sin(x);
plt.plot(x,y) | plot(x,y)
plt.ylabel('sin(x)') | ylabel('sin(x)')
plt.xlabel('x') | xlabel('x')
plt.show() |