美文网首页
把矩阵部分元素随机打乱顺序

把矩阵部分元素随机打乱顺序

作者: 小金刚葫芦妹 | 来源:发表于2017-07-11 17:46 被阅读0次

例: 把一个对称阵非对角元素打乱顺序,得到新的对称阵

%把一个对称阵非对角元素打乱顺序,得到新的对称阵
%构造原始对称阵C
N=5;
A=randperm(N^2); 
B=reshape(A,N,N) ;
C=triu(B',0)+tril(B,-1); % 根据下三角造对称阵
%%%%%%%%%%%% C是原始对称矩阵, F是新的对称阵%%%%%%%%%%%
% 标记下三角元素在矩阵的位置为向量I
I=find(tril(ones(size(C)),-1));
%  提取所有下三角元素(不包括对角线元素)至向量E
E=C(I) ;
%打乱E 的顺序
E=E(randperm(length(E)));
F=diag(diag(C)); % 提取C的对角线,放到F,F的非对角线皆为0
F(I)=E;%打乱的元素放到F下三角
% F 的下三角映射到上三角,构成对称矩阵.
F=triu(F',0)+tril(F,-1);
原始矩阵C和新矩阵F

另外还可以,随机打乱矩阵所有元素顺序

E=rand(4,4)
E=reshape(E(randperm(numel(E))),4,4)

相关文章

网友评论

      本文标题:把矩阵部分元素随机打乱顺序

      本文链接:https://www.haomeiwen.com/subject/zrmmhxtx.html