Портирование кода из matlab в python - PullRequest
4 голосов
/ 21 февраля 2012

Я хотел бы перевести этот код Matlab в Python

например со случайными файлами:

FileA= rand([10,2])
FileB= randperm(10)

for i=1:10
fileC(FileB(i),1)=FileA(i,1); %for the x
fileC(FileB(i),2)=FileA(i,2); %for the y
end

Может ли кто-нибудь помочь мне? спасибо!

Ответы [ 2 ]

7 голосов
/ 21 февраля 2012
import numpy as np
array_a = np.random.rand(10,2)
array_b = np.random.permutation(range(10))

array_c = np.empty(array_a.shape, array_a.dtype)
for i in range(10):
    array_c[array_b[i], 0] = array_a[i, 0]
    array_c[array_b[i], 1] = array_a[i, 1]
1 голос
/ 11 мая 2013

, если вы не хотите зависеть от numpy и не имеете дело с большими массивами / производительность не является проблемой, попробуйте следующее:

import random
def randperm(a):
    if(not a):
        return a
     b = []
     while(a.__len__()):
         r = random.choice(a)
         b.append(r)
         a.remove(r)

     return b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...