change matlab linear index to numpy.
Show older comments
I have a three-dimensional matrix X with dimensions 16 x 10 x 1200. The original program used
for i = 3876:10000
My(:,:,i) = X(:,i)*X(:,i)';
end
Obviously, this program uses linear indexing in Matlab. I have read the relevant documentation for Matlab and NumPy, but I still do not know how to convert it to the corresponding operation in NumPy. Can anyone help me? Thank you very much.
Answers (1)
Kautuk Raj
on 3 Jun 2023
This can be the equivalent NumPy code for the given MATLAB code:
import numpy as np
X = np.random.rand(16, 10, 1200)
My = np.zeros((16, 16, 10000-3876+1))
for i in range(3876, 10001):
My[:, :, i-3876] = np.outer(X[:, i-1], X[:, i-1])
Note that we use i-1 as the index for X since Python uses 0-based indexing.
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!