matlab 随机数的问题

i=1;Q=0;while(i<L)i=i+1;endduan=i*10;a_z=(L/duan);z=0:a_z:L;R=round(rand(1)*(500-100)... i=1;
Q=0;
while(i<L)
i=i+1;
end
duan=i*10;
a_z = (L/duan);
z = 0: a_z : L;
R=round(rand(1)*(500-100))+90+z;
Q=Q+R;
V=Vmax+(Vmin-Vmax)*exp(-G*((z-(L/2))/L).^2); %G=10
%axes(handles.axes1);
plot(z,V)
ylabel('V(mm/s)');
xlabel('z(mm)');
G=[z;V;Q];
fp1=fopen('D:\Gauss.txt','wt');
fprintf(fp1,'%7.2f\t %7.4f\t %9.4f\n ',G);
上面程序一运行就会报错??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
如果 R=round(rand(1)*(500-100))+100;变为 R=round(rand(1)*(500-100))+100+z;就会正常运行,但是这里R只会赋予一个值
我想让每取一个z,R都会随机赋予一个100到500的值
有没有人帮我解决一下这个问题啊
展开
 我来答
cccH博士ccc
2011-03-09 · 超过19用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:55.3万
展开全部
你要的是R在100到500间还是round(rand(1)*(500-100))在100到500间?如果是前者,就写成
R = round(unifrnd(100,500,1,1),不过这样就跟Z没什么关系了。
如果是后者的话,可以写成
R = round(unifrnd(100,500,1,1)+90+z。
并且,你的z=0:a-z:L应该要用循环语句。
追问
不行~unifrnd我试过,一样,
还有z=0:a-z:L如果用循环语句的话fprint就不能输出数据到txt文件~
追答
R = round(unifrnd(100,500,1,length(z))+90+z
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式