mdsk.net
当前位置:首页 >> MATLAB 怎样随机访问一个矩阵中的数 >>

MATLAB 怎样随机访问一个矩阵中的数

先把矩阵中的那个元素找到 ,如i(i,j)=a,a就是你想赋的值 如果你想给整个矩阵都随机赋值 就是 rand(i)

可以用随机数发生器 :)具体如下:data=randn(1000,1); %需要随机提取数据的矩阵randnum=randperm(length(data)); %随机产生矩阵位置outdata=data(randnum(1:100)); %可随机从data中提取100个数据

假设你的矩阵为A [m,n]=size(A)%得到A的大小 k=m*n;%A中总的元素个数 a=A(ceil(rand()*k))%产生一个k以内的随机正整数,取A的第k个数!

假设矩阵是m*n维的矩阵,随机生成一个矩阵s.在s中任取k个数,将这k个数放入一维数组target中.matlab代码如下:clc clear m = input('数组行数m:'); n = input('数组列数n:'); k= input('将要取出的数个数k:'); if (k >m*n) disp('矩阵元素个数小于需要取出的数个数!'); else s = rand(m,n); n= numel(s);%数组长度 i=ceil(rand(1,k)*n); target = s(i); end 运行结果如下所示.

>> a=[3 8 6 4 9];>> b=randint(1,1,[1 5])%%a为矩阵,利用randint随机产生其矩阵序号,然后代入序号,即可得到随机抽取的元素b = 5>> a(b)ans = 9

1、如楼上所说,高维矩阵是个解决方法,不过和你说的要求略有不一样 另外就是用元胞数组,例如 a = cell(5,5);a{1,1} = eye(4); 这样a是5*5的元胞数组,其中第一行第一列为4*4的单位阵,对于a的其他元素同样可以定义为矩阵2、这样的矩阵不能直接运算,里面的元素可以

可用函数randperm比如A是100*50的矩阵,B是新矩阵b=randperm(length(A(:,1)));B=A(b(1:30),:);

方法如下:A=zeros(100,50); idx=randperm(100*50); A(idx(1:20))=1; 如此即可.

%% A是0-1矩阵 l = find(~A); t = randperm(length(l)); A(l(t(1:2))) = 1; % 把两个0替换成1

A=rand(50,7)randindex=randperm(50); %这个是1到50的随机组合,B=A(randindex(1:30),:) %取上述组合的前30行

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com