作者np62077 (ray)
看板MATLAB
标题[问题] 矩阵问题 可能是我的想法或是语法用错
时间Tue Aug 13 22:30:35 2013
小弟是matlab的新手,有个问题困扰了我一段时间,只好上来这里请教各位高手
假设有一个矩阵A=[1 1 0 1 0 0 0 1 1 0 ],然後用另一个矩阵B=randn(1,5)使得
A变成一个在0和1的位置上具有常态分布的矩阵。然後我的作法是直接暴力写回圈:
A=[1 1 0 1 0 0 0 1 1 0];
B=randn(1,5);
x=1;
y=1;
for n=1:1:10
if A(1,n)==1
A(1,n)=1+B(1,x); x=x+1;
elseif A(1,n)==0
A(1,n)=B(1,y); y=y+1;
end
end
这样跑完後,按照我的想法,理论上A的最大值应该会=B的最大值+1,
A的最小值会=B的最小值,但是跑出来的数字却都不对,A的最大值反而比B的最大值小
而A的最小值比B的最小值大......
T_T想破头却还是不知道问题出在哪...麻烦各位高手指点一下~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.192.124
1F:推 kurt28:其实本来就不一定会成立 randn出来的是随机的 你不知道最大 08/13 22:51
2F:→ kurt28:跟最小值的位置在哪 照回圈给的条件 该index A=1才会有1+B 08/13 22:53
3F:推 kurt28:你可以参考randn的范例~ 不知道有没有帮到忙@@ 08/13 22:55
4F:→ np62077:@@"我点到workspace那边就可以看到A跟B的最大值啦~ 08/13 22:58
5F:→ np62077:我知道每次的最大值都会不一样~可是每次加完的结果都是我 08/13 23:00
6F:推 kurt28:是阿 可是B最大值的位置不一定会对应到A=1呀XD 08/13 23:00
7F:→ np62077:0.0?我的B有跑两次~对元素1跑一次 再对元素0跑一次 08/13 23:02
8F:→ np62077:所以B的最大最小值都会用到两次才对啊? 08/13 23:02
9F:→ np62077:所以是不是我的用法错了>"< 08/13 23:03
10F:推 kurt28:所以原PO你要用的randn是1X5还是1X10呢? 08/13 23:26
11F:→ kurt28:突然看到你在推文说的 回头看你的文字叙述 是1X5 08/13 23:26
12F:→ kurt28:可是code里面用的是1X10 08/13 23:27
13F:→ np62077:XD我打错了~是一乘五的~~抱歉 08/13 23:32
※ 编辑: np62077 来自: 140.117.192.124 (08/13 23:32)
14F:推 kurt28:我会比较建议你用范例1的方法去改 08/13 23:33
15F:推 kurt28:标准差与分布的关系在wiki上也查的到 08/13 23:35
16F:→ kurt28:用你的code跑了一遍 得到的结果也符合你的叙述 所以不太懂 08/13 23:39
17F:→ np62077:范例一指的是~~乱数randn的第一个范例吗? 08/14 00:07
18F:推 kurt28:对 08/14 11:22
19F:→ np62077:QQ结果跟没加点的一样耶........好难过 08/14 12:28