作者Oxygenair (氧气)
看板MATLAB
标题Re: [问题] 创造方程式跟定义变数出现错误
时间Wed Jan 23 09:51:11 2013
※ 引述《LongFive ( ==龙五==)》之铭言:
: 小的是超新手,对於matlab才刚上手2天,有些很浅薄基础观念想请教版上高手,
: 老实说这几天也google了很多论坛,有些有找到解答,便依样画葫芦去作,
: 但後面出现些错误就不知道该怎麽处理了,希望有前辈可以稍微提点,谢谢!!
: 1.写一个骰子的随机矩阵 dice(m,n),输入m,n会产生m*n矩阵,数字都在1~6间
: 小弟写法(很简陋):
: function x = dice(m,n)
: %randint(m,n,[1 6])
: randint(m,n,[1 6])
: end
: ---------
: 产生错误:
: Warning: This is an obsolete function and may be removed in the future.
: Please use RANDI
: instead.
: > In randint at 41
: In dice at 6
: 我知道第一个是叫我改用RANDI这个函数,但我改用好像还是有错,请教有没有甚麽
: 比较好的写法,谢谢!
你可以help一下randi的用法...其实跟旧函数randint有点不太一样
应该讲argument的输入有点改变 要改成 randi( [ 1 , 6 ] , m , n )
建议你看一下印象会比较深刻
: 2.续上题,我想用一个常数pk去代表dice(1,500),即为pk=dice(1,500)
: 但我执行pk=dice(1,500)後,照理pk应该就被定义了,可是当我要用hist(pk)画出
: 长条图时,系统却告诉我Undefined function or variable 'pk'
: 所以没办法跑出长条图,後来我再用syms去定义pk,却还是不行@@? 请教原因!
问题出在你原本的function没有定义x是什麽东西
虽然function写输出是x 但是内文没有x
所以只要改成 x = randi( [ 1 , 6 ] , m , n ); 应该就可以了
: 3. 小弟想创造一个函式:f(x)= 1/(1+exp(-x)),却不知道该怎麽用语法写。
: 想到用:
: function M = f(Y)
: Y=1/(1+exp(-x))
: end
: 但这样子自知没有这麽简单,却也不知道该怎麽修补比较好...唉
这非常的奇怪= = function输出明明就是M
但内文却是给Y 这有牛头不对马尾
而且Y是function输入的argument 怎麽可以在内文又变成输出
我揣测一下你想要的原意
function y = f(x)
y = 1/(1+exp(-x));
end
这样写应该就可以了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.127.59
1F:推 LongFive:原来如此,真是感谢了! 01/23 10:57