[運算] function 輸入的判斷

看板MATLAB作者 ( )時間11年前 (2012/11/20 09:30), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/2 (看更多)
如果 function 是 長得像 function fval = f(x) fval = exp(x)*2 那丟入的 x 是 scalar 就會傳出 scalar 是 matrix 就會是 element by elment 的 matrix 我想問的是如果 function 長得像是 function fval = f(x) fval = sum (x*randn(6,1)) 顯然丟 scalar 還是可以運作 但是丟 matrix 程式就會告訴你說矩陣維度不對 (除非剛好對) 除了重寫function外 有沒有辦法讓他也變成 element by elment 的計算結果呢? 比如說跟 MATLAB 宣告 if size(x) ~= 1 怎樣怎樣的 感謝回答 這問題困擾我很久了... 目前都只能徒法煉鋼 用 for loop 帶入值 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 74.126.231.103

11/20 10:11, , 1F
你可以寫成 fval=sum( x.*randn(size(x)) )
11/20 10:11, 1F

11/20 16:32, , 2F
這樣結果就不一樣了 不是我要的東西
11/20 16:32, 2F

11/20 16:32, , 3F
這也只是個例子 我想問的是 general 的方法
11/20 16:32, 3F

11/20 18:18, , 4F
那我沒辦法了,看不懂你的general問題
11/20 18:18, 4F

11/20 20:09, , 5F
*是矩陣相乘的意思,要改.*吧
11/20 20:09, 5F

11/20 20:11, , 6F
randn(6,1)是6x1矩陣.....用*x維度只能1x6
11/20 20:11, 6F
文章代碼(AID): #1Ggjq-4Z (MATLAB)
文章代碼(AID): #1Ggjq-4Z (MATLAB)