我有一个x-by-y矩阵M,我用来存储x行向量。
e.g。
M = [ 1 2 3; 4 5 6; 7 8 9 ]
现在说我要创建另一个矩阵N,其中包含以随机顺序排列的这些向量,某些向量可能重复,有些可能根本不会被使用。
N = [ 4 5 6; 4 5 6; 1 2 3; 7 8 9; 4 5 6; ...]
有什么建议吗?
我正在考虑以下事项:
V = randi([x, 1], 1, length);
N = [ ];
for b = 1:length;
c = V(b);
N = [N; M(c)];
end
同样,x是矩阵M中的行数。我无法测试这个,所以我不知道它是否有效。
答案 0 :(得分:1)
您未正确使用randi
(请阅读documentation)。看起来你有向后输入参数。您也可以在没有循环的情况下执行此操作:
M = [1 2 3; 4 5 6; 7 8 9];
len = 10; % Number of rows in new matrix
V = randi(size(M,1), len, 1); % Random row indices
N = M(V,:)
返回(随机)
N =
7 8 9
7 8 9
1 2 3
7 8 9
4 5 6
1 2 3
1 2 3
4 5 6
7 8 9
7 8 9
我还使用len
代替length
,这是常用函数的名称。