答案可以是:
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个数有一定的概率是连续的。
如果你想连续就让他连续,那还叫随机么?
啊,我懂了,谢谢您的耐心回答!
追答没事~
对不起,虽然您也不吝赐教,但是还是那个回答更简单有效,金币只有一份,只能给他了。但是还是非常感谢您。