0001 function [output_vector, vector_ind] = rand_order_no_repeats(input_vector)
0002
0003
0004
0005
0006
0007 rand('state',sum(100*clock));
0008
0009 rand_input_vector = input_vector(randperm(length(input_vector)));
0010 unique_values = unique(rand_input_vector);
0011
0012 for(idx = 1:length(unique_values))
0013 vals(idx).value = unique_values(idx);
0014 vals(idx).order = find(rand_input_vector == vals.value);
0015 vals(idx).repeats = find(vals(idx).order == vals(idx).order+1);
0016 end
0017
0018
0019
0020
0021 for(unique_idx = 1:length(unique_values))
0022
0023 if(~isempty(vals(unique_idx).repeats))
0024
0025 for(swap_idx = setdiff([1:length(unique_values)],unique_idx))
0026
0027 for(repeat_idx = vals(unique_idx).repeats)
0028
0029 if(
0030
0031
0032
0033
0034 end
0035
0036
0037
0038
0039
0040 end
0041
0042
0043
0044
0045 end
0046
0047 end