问题:
编写一个
的matlab程序i)在区间[a,b]中生成N <= 20个随机数,其中 N,a,b 通过键盘输入
我的尝试:
a = input ('a=')
b = input ('b=')
N = input ('N=')
for N = (1:N)
r = rand([a,b],[1,N])
end
似乎不起作用。出现以下错误消息
“下标索引必须是正整数或逻辑。”
我做错了什么?
ii)将数字写入矢量/数组 x
不知道怎么做? 这只是放r = x?
的问题iii)将所有可被 k 整除的数字写入屏幕,通过键盘输入 k 。
我的尝试:
k = input ('k=')
t = mod(x,k);
for x = i:N
if mod(x,k) == 0
disp t
end
end
我是否接近正确?
[我之前从未使用过堆栈溢出 - 无法正确格式化事项]抱歉
答案 0 :(得分:2)
获取范围[a,b]中的N个随机数:
a = input('a=');
b = input('b=');
N = input('N=');
% For floating point:
r1 = a + (b-a)*rand(1, N);
% For integers:
r2 = round(a + (b-a)*rand(1, N));
如您所见,r1和r2已经是矢量形式,所以:
x = r1;
% or
x = r2;
对于最后一部分(这也将打印重复项):
k = input('k=');
divs_found = find(mod(r, k) == 0);
disp(r(divs_found));