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