我想在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
有人可以给我一些帮助吗?谢谢!
答案 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