reordering the data
显示 更早的评论
i have values as
D=[1 2 3 4 5 6 7 ]
now i want to reorder the data
D1=[3 4 7 1 2 6 5]this is for example,
i want the order to be changed from D,without using randperm function,please help
采纳的回答
更多回答(3 个)
Junaid
2012-2-7
Second possible way is
D = [1 2 3 4 5 6 7];
declare any temp variable to have the order of indices. For example.
T = [3 4 7 1 2 6 5];
D1 = D(T);
In given example your indices and values are same, but for different values following code will work.
Jan
2012-2-7
D.E. Knuth has shown some shuffle methods, e.g.:
D1 = D;
for i = 2:numel(D) % Knuth shuffle in forward direction:
w = ceil(rand * i); % 1 <= w <= i
t = D1(w);
D1(w) = D1(i);
D1(i) = t;
end
This is proven to be unbiased and cheaper than using 2 random numbers for swapping. See also: FEX: RPG-lab.
Sean de Wolski
2012-2-7
Sure:
[~, idx] = sort(rand(size(D)));
D1 = D(idx);
类别
在 帮助中心 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!