作者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