我有一个来自文件的静态矩阵:
size(data)=[80 5]
我想要的是随机改变每个矢量的位置 当我使用烫发时:
N = size(data, 1);
X = perms(1:N); % # Permutations of column indices
Y = meshgrid(1:N, 1:factorial(N)); % # Row indices
idx = (X - 1) * N + Y; % # Convert to linear indexing
C = data(idx)
但它给了我一个错误:Maximum variable size allowed by the program is
exceeded.
还有其他功能可以提供我需要的东西吗?
答案 0 :(得分:0)
perms
对大数字不好,即任何数字> 10
它说
当长度(v)小于约10时,烫发(v)是实用的。
从以下代码中查看所需的大小:
MB(10,1) = 0;
for N = 1:10
X = perms(1:N);
dt=whos('X');
MB(N)=dt.bytes*9.53674e-7;
end
plot(1:10,MB,'r*-');
注意曲线的陡度突然上升超过9。
答案 1 :(得分:0)
所以我认为我已经完成了
N = size(data, 1);
r=randperm(N);
for ii=1:80
matrix(r(ii),:) =data(ii,:) ;
end