将代码从matlab移植到python

时间:2012-02-21 03:04:39

标签: python matlab

我想在python中翻译这个matlab代码

例如随机文件:

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

有人可以给我一些帮助吗?谢谢!

3 个答案:

答案 0 :(得分:7)

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 :(得分:1)

如果你不想依赖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

答案 2 :(得分:0)

from random import shuffle

def randperm(n):
    lst = [i for i in range(1, n+1)]
    shuffle(lst)
    return lst