你题目的意思是随机生成1000个-1或1,而不是生成1000个[-1,1]之间的随机数吧?
用rand函数生成0~1之间的随机数序列,判断大于0.5的转化成1,小于等于的转换为-1即可。
代码:
num=1000;%总共1000个数
a=rand(1,num);生成0~1随机数序列
a(a>0.5)=1;
a(a<=0.5)=-1;
a就是你要求的。
也许还有更简单的代码,比如使用逻辑运算等。
可以这样写
%% 生成随机序列a
b = rand(1,1000)*2-1; %1000个[-1,1]之间的随机数
a = sign(b); % 取b每项的符号函数获得目标序列a
祝编程顺利
...我来给个简单的实现吧
a=2*rand(1,1000)-1;
rand(1,1000)产生1000个0-1间的书2*rand(1,1000)产生1000个0-2间的数,再减去1就是-1到1的了
for
i=1:n
a(i)=rand[0,1]
end
很久没用matlab了
不知道这种写法对不对
你查查吧
产生随机数就是用rand函数
至于是用[]还是()我忘了,随机序列需要用数组来承接
也便于以后的运用
产生-1 和1 的随机序列
Math.Sin(Math.PI / 2 + Math.Ceiling(Rnd() - 0.5) * Math.PI)