matlab如何将已有矩阵的每行元素重新随机排列

2025-04-26 06:46:43
推荐回答(3个)
回答1:

使用randperm函数生成随机位置,然后将原矩阵进行修改,程序如下:

 

简单的实验结果如下:

回答2:

假设行数或列数为n
vector = randperm(n);
vector是从1到n的整数随机排列的向量
按照vector里各个元素的值重新排列行列向量就可以了
假设待排列矩阵为M,排列后的矩阵为A
按列随机排列
A = zeros(size(M));
for i=1:n
A(:,i)=M(:,vector(i));
end

回答3:

% matrix_In是输入矩阵
% matrix_Out是输出矩阵
function [matrix_Out] = Randmatrix(matrix_In)
[line column] = size(matrix_In);
matrix_Out=zeros(line,column);
for i=1:line
seed=randperm(column);
matrix_Out(i,:)= matrix_In(i,seed);
end
end