randperm and sorting array

2 次查看(过去 30 天)
as example :
A = [8 9 0]
Perm1 = randperm(length(A));
B= A(:,Perm1);
B_eks=B
[val_sort, id_sort] = sort(Perm1);
A_eks = B_eks(:,id_sort);
i want it for looping, so A_eks(:,:,1) = [8 9 0],;A_eks(:,:,2) = [8 9 0],A_eks(:,:,2) = [8 9 0],A_eks(:,:,4) = [8 9 0], i have try like this:
for i=1:4
Perm1(:,:,i) = randperm(length(A));
B(:,:,i)= A(:,Perm1(:,:,i));
B_eks(:,:,i)=B(:,:,i)
end
for k=1:4
[val_sort, id_sort] = sort(Perm1(:,:,k));
A_eks(:,:,k) = B_eks(:,id_sort);
end
but it didn't work like i want, what should i do ?
  6 个评论
KSSV
KSSV 2017-10-25
If you want it to be same..keep it same....why to run all the stuff? Using randperm is good if you want to permute array randomly.
maharani meidy
maharani meidy 2017-10-25
@KSSV : well.. i want it to be more secure than just keep it the same...^^

请先登录,再进行评论。

采纳的回答

KL
KL 2017-10-25
Change
A_eks(:,:,k) = B_eks(:,id_sort);
to
A_eks(:,:,k) = B_eks(:,id_sort,k);

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by