I'm a Matlab user trying to switch to Python.
Using Numpy, how do I fill in a matrix inside a for
loop?
For example, the matrix has 2 columns, and each iteration of the for
loop adds a new row of data.
In Matlab, this would be:
n = 100;
matrix = nan(n,2); % Pre-allocate matrix
for i = 1:n
matrix(i,:) = [3*i, i^2];
end
First you have to install numpy using
$ pip install numpy
Then the following should work
import numpy as np
n = 100
matrix = np.zeros((n,2)) # Pre-allocate matrix
for i in range(1,n):
matrix[i,:] = [3*i, i**2]
A faster alternative:
col1 = np.arange(3,3*n,3)
col2 = np.arange(1,n)
matrix = np.hstack((col1.reshape(n-1,1), col2.reshape(n-1,1)))
Even faster, as Divakar suggested
I = np.arange(n)
matrix = np.column_stack((3*I, I**2))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With