# Tranform Python code in Matlab

조회 수: 1 (최근 30일)
Example Mo 2015년 6월 20일
댓글: Example Mo 2015년 6월 21일
Hello, I'm new to Matlab and I want to transform a simple python code.I tried to do that alone but I don't know how to make array indexation, in this case X[pairs[:,0],:] . Here is my code:
def learning_distance_symmetric(W,X,pairs,batch_size=10000):
"""Compute an array of Euclidean distances between points indexed by pairs
To make it memory-efficient, we compute the array in several batches.
Parameters
----------
X : array, shape (n_samples, n_features)
Data matrix
W : array, shape (n_features,n_features)
Learned distance matrix
pairs : array, shape (n_pairs, 2)
Pair indices
batch_size : int
Batch size (the smaller, the slower but less memory intensive)
Output
------
dist : array, shape (n_pairs,)
The array of distances
"""
n_pairs = pairs.shape[0]
dist = np.ones((n_pairs,), dtype=np.dtype("float32"))
for a in range(0, n_pairs, batch_size):
b = min(a + batch_size, n_pairs)
diff = X[pairs[:,0],:] - X[pairs[:,1],:]
dist[a:b] = np.sum(np.dot(W,diff.T)*diff.T, axis=0)
return dist
Someone could give me some clues (Maybe the documentation dealing with this case) ? Thanks in advance.

댓글을 달려면 로그인하십시오.

### 답변 (1개)

Ken Atwell 2015년 6월 21일
MATLAB is 1-indexed, so I think you're looking for something like:
diff = X(pairs(:,1),:) - X(pairs(:,2),:);
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Example Mo 2015년 6월 21일
Thanks, it was exactly what I'm looking for.

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by