24小时热门版块排行榜    

查看: 1497  |  回复: 8

xintangren

铜虫 (著名写手)

[求助] 请问朋友,在MATLAB上生成如下类似的随机非对称矩阵,帮助者有重奖哦 已有3人参与

请问朋友,想生成如下类似的随机非对称矩阵
A=[-1.000 0.2046 0.4560 0.3394;
0.5761 -1.000 0.1636 0.2603;
0.2204 0.4171 -1.000 0.3625;
0.2945 0.3636 0.3418 -1.000]
主对角线为-1,各行的和为0;各列的和不为0。
如何编程在MATLAB上生产这样的矩阵,谢谢了。

进一步,若主对角线为-1,各行的和为0;各列的和也为0。
如何编程在MATLAB上生产这样的矩阵,谢谢了。
回复此楼
Think,-and-you-will-discover!-Work,-and-you-will-get-results!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
xzhdty: 金币+1, 感谢参与 2014-02-06 13:46:24
xintangren: 金币+3, 有帮助 2014-02-08 21:47:34
rand(m,n); 产生[0,1]随机数矩阵
for i=1 to m;
for j=1 to n;
cnt=0;
if i<>j
a[i, j]=-1;       %主对角线赋-1
else
cnt+=a[i, j];
end if;
end;
for j=1 to n;
cnt=0;
if i<>j
a[i, j]= a[i, j]/cnt;  % 每行其它元素的和归一化
end if;
end;
end;
% 手头机子无matlab编译器,思路是对的。
2楼2014-02-05 20:56:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cobrasq

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢参与 2014-02-06 13:46:32
xintangren: 金币+10, ★★★很有帮助 2014-02-08 21:48:28
n = 4;
x = rand(n);
x(logical(eye(n))) = 0;
rowsum = sum(x, 2);
x = bsxfun(@rdivide, x, rowsum);
x(logical(eye(n))) = -1;
3楼2014-02-06 04:56:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xintangren

铜虫 (著名写手)

引用回帖:
2楼: Originally posted by feixiaolin at 2014-02-05 13:56:55
rand(m,n); 产生随机数矩阵
for i=1 to m;
for j=1 to n;
cnt=0;
if i<>j
a=-1;       %主对角线赋-1
else
cnt+=a;
end if;
end;
for j=1 to n;
cnt=0;
if i<>j
a= a/cnt;  % 每行 ...

谢谢你的回复啊,但是很多差错啊,无法运行代码啊,兄弟,麻烦你再弄一下,然后在matlab上运行一下,以方便别人的使用啊,谢谢。
Think,-and-you-will-discover!-Work,-and-you-will-get-results!
4楼2014-02-08 21:47:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xintangren

铜虫 (著名写手)

引用回帖:
3楼: Originally posted by cobrasq at 2014-02-05 21:56:19
n = 4;
x = rand(n);
x(logical(eye(n))) = 0;
rowsum = sum(x, 2);
x = bsxfun(@rdivide, x, rowsum);
x(logical(eye(n))) = -1;

很好用啊,谢谢好兄弟
Think,-and-you-will-discover!-Work,-and-you-will-get-results!
5楼2014-02-08 21:48:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cobrasq

金虫 (小有名气)

引用回帖:
5楼: Originally posted by xintangren at 2014-02-08 21:48:10
很好用啊,谢谢好兄弟...

说好的重奖呢?
6楼2014-02-09 10:10:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xintangren

铜虫 (著名写手)

引用回帖:
6楼: Originally posted by cobrasq at 2014-02-09 03:10:02
说好的重奖呢?...

你还有没有更好的代码呢,若别人后面没有更好的程序,“重奖”就给你的。。。稍等
Think,-and-you-will-discover!-Work,-and-you-will-get-results!
7楼2014-02-09 19:53:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

凯凯kevin

金虫 (正式写手)

【答案】应助回帖

n = 4;
x = rand(n);
x(logical(eye(n))) = 0;
rowsum = sum(x, 2);
x = bsxfun(@rdivide, x, rowsum);
x(logical(eye(n))) = -1;
8楼2014-02-09 22:21:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xintangren

铜虫 (著名写手)

引用回帖:
8楼: Originally posted by 凯凯kevin at 2014-02-09 15:21:40
n = 4;
x = rand(n);
x(logical(eye(n))) = 0;
rowsum = sum(x, 2);
x = bsxfun(@rdivide, x, rowsum);
x(logical(eye(n))) = -1;

你把cobrasq的东西完全copy过来,若你是搞学术的话,以后会出麻烦的,建议你以后堵住这个不好习惯。祝好。
Think,-and-you-will-discover!-Work,-and-you-will-get-results!
9楼2014-02-10 15:54:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 学员WSolJ9 的主题更新
信息提示
请填处理意见