24小时热门版块排行榜    

查看: 2245  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

tomcat2000

金虫 (著名写手)

[求助] matlab产生随机二维矩阵,这些随机数只能是-1或者1?

怎么在matlab产生随机二维矩阵,这些随机数只能是-1或者1?比如要产生100X100矩阵。但是还要要求这个产生的随机二维矩阵中,“-1”的总个数不能超过100个。谢谢。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tomcat2000

金虫 (著名写手)

引用回帖:
7楼: Originally posted by zzzx2008 at 2012-04-23 23:19:12:
兄弟的想法 不错  值得考虑
看看下面 这个 如何?
clear;
clc;
N=10;%二维 矩阵行列值
zero_num=5;%小于零的个数
a=randint(N,N);%0 1 随机
b=reshape(a,1,N*N);% 转化一维 处理方便
c=b*2-1;%+ - 1
...

thank you
8楼2012-04-24 07:28:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

awormvista

银虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
tomcat2000: 金币+5, 有帮助 2012-04-22 13:27:57
先随机生成一个矩阵,然后统计下小于N的数量,。。。循环。。。直到数量为100,将这些数改为-1
None
2楼2012-04-22 11:41:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiangqianzsh

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
tomcat2000: 金币+5, ★★★很有帮助 2012-04-22 13:28:07
randperm(10^4)生成1:10^4的整数的一个随机排列矩阵,<100的数据换成-1即可,之后把1*10000矩阵变成100*100的矩阵就行了
3楼2012-04-22 12:45:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzzx2008

银虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
tomcat2000: 金币+15, ★★★★★最佳答案 2012-04-22 13:28:12
这样的矩阵 就不能称为 随机矩阵了啊
clear;
clc;
N=10;%二维 矩阵行列值
zero_num=5;%小于零的个数
a=randint(N,N);%0 1 随机
b=reshape(a,1,N*N);% 转化一维 处理方便
c=b*2-1;%+ - 1
d=find(c<0);%寻找 < 0的 下标
for i=1:length(d)-zero_num
    c(d(i))=c(d(i))+1;%<0 的 +1
end
a=reshape(c,N,N);%回归 二维
这个程序生成的矩阵 -1集中在尾部
4楼2012-04-22 12:53:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见