[問題] 矩陣問題 可能是我的想法或是語法用錯

看板MATLAB作者 (ray)時間12年前 (2013/08/13 22:30), 編輯推噓7(7012)
留言19則, 2人參與, 最新討論串1/1
小弟是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

08/13 22:51, , 1F
其實本來就不一定會成立 randn出來的是隨機的 你不知道最大
08/13 22:51, 1F

08/13 22:53, , 2F
跟最小值的位置在哪 照迴圈給的條件 該index A=1才會有1+B
08/13 22:53, 2F

08/13 22:55, , 3F
你可以參考randn的範例~ 不知道有沒有幫到忙@@
08/13 22:55, 3F

08/13 22:58, , 4F
@@"我點到workspace那邊就可以看到A跟B的最大值啦~
08/13 22:58, 4F

08/13 23:00, , 5F
我知道每次的最大值都會不一樣~可是每次加完的結果都是我
08/13 23:00, 5F

08/13 23:00, , 6F
是阿 可是B最大值的位置不一定會對應到A=1呀XD
08/13 23:00, 6F

08/13 23:02, , 7F
0.0?我的B有跑兩次~對元素1跑一次 再對元素0跑一次
08/13 23:02, 7F

08/13 23:02, , 8F
所以B的最大最小值都會用到兩次才對啊?
08/13 23:02, 8F

08/13 23:03, , 9F
所以是不是我的用法錯了>"<
08/13 23:03, 9F

08/13 23:26, , 10F
所以原PO你要用的randn是1X5還是1X10呢?
08/13 23:26, 10F

08/13 23:26, , 11F
突然看到你在推文說的 回頭看你的文字敘述 是1X5
08/13 23:26, 11F

08/13 23:27, , 12F
可是code裡面用的是1X10
08/13 23:27, 12F

08/13 23:32, , 13F
XD我打錯了~是一乘五的~~抱歉
08/13 23:32, 13F
※ 編輯: np62077 來自: 140.117.192.124 (08/13 23:32)

08/13 23:33, , 14F
我會比較建議你用範例1的方法去改
08/13 23:33, 14F

08/13 23:35, , 15F
標準差與分佈的關係在wiki上也查的到
08/13 23:35, 15F

08/13 23:39, , 16F
用你的code跑了一遍 得到的結果也符合你的敘述 所以不太懂
08/13 23:39, 16F

08/14 00:07, , 17F
範例一指的是~~亂數randn的第一個範例嗎?
08/14 00:07, 17F

08/14 11:22, , 18F
08/14 11:22, 18F

08/14 12:28, , 19F
QQ結果跟沒加點的一樣耶........好難過
08/14 12:28, 19F
文章代碼(AID): #1I2aCGjk (MATLAB)