作者JamesChen ( )
看板MATLAB
標題[運算] function 輸入的判斷
時間Tue Nov 20 09:30:35 2012
如果 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
1F:推 ericabab:你可以寫成 fval=sum( x.*randn(size(x)) ) 11/20 10:11
2F:→ JamesChen:這樣結果就不一樣了 不是我要的東西 11/20 16:32
3F:→ JamesChen:這也只是個例子 我想問的是 general 的方法 11/20 16:32
4F:→ ericabab:那我沒辦法了,看不懂你的general問題 11/20 18:18
5F:推 ak075:*是矩陣相乘的意思,要改.*吧 11/20 20:09
6F:→ ak075:randn(6,1)是6x1矩陣.....用*x維度只能1x6 11/20 20:11