作业帮 > 综合 > 作业

matlab 如何对一个矩阵如一个1000×1,随机取出10个元素(这些元素可以是连续的)并赋值为-100的问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 07:04:01
matlab 如何对一个矩阵如一个1000×1,随机取出10个元素(这些元素可以是连续的)并赋值为-100的问题
答案可以是:
A=zeros(1000,1);
R=round(0.5+999.5*rand(10,1));
A(R)=-100
运行可以满足要求
但是对一个10000×1的矩阵,想取出1000个元素,实际运行却不是1000个元素,请问写第二句话的规则是什么,
你那个rand虽然产生的是随机数,既然是随机数,那么两次产生的结果就可以相同.

使用下边的程序,其中randperm是进行一个1到1000的随机排列,取出前N个之后操作,就相当于随机取了N个元素.你可以测试一下.

N=100;
A=zeros(1000,1); 
R=randperm(1000);
R=R(1:N);
A(R)=-100

下图是测试的是N=10的结果:

再问: 您好,你这种方法可以保证产生1000个-100的值,但是我发现这1000个数是间隔的,没有连续的。可不可以反应一种更普遍的状况,缺失的数据中,既可以有单个的数,也可以是连续的几个或者多个数
再答: 什么叫间隔的?连续的?什么又是单个的?什么又是缺失数据?
再问: 哈比如说您看您取得这些任意数赋值的过程中,这些任意数的位置都是不连续的比如 463 515 517等等,可不可以产生一组连续的,比如从515到520
再答: 首先我得给你说说,那1000的时候是你看错了,那1000个数绝对是1 2 3 4 到1000,只不过是打乱顺序而已。 另外,我觉着你没有理解你的题目,也没有理解我的回答。你的题目让随机挑选10个元素,我就是随机挑选的,而且我的那些数也是随机选择的,既然我是随机选择的,那么那10个数有一定的概率是连续的。 如果你想连续就让他连续,那还叫随机么?
再问: 啊,我懂了,谢谢您的耐心回答!
再答: 没事~