【发布时间】:2017-02-16 07:50:08
【问题描述】:
我在尝试定义自己的随机生成器函数时得到未定义的变量/参数。
代码:
function result = myrand(n, t, p, d)
a = 200 * t + p
big_rand = a * n
result = big_rand / 10**d
return;
endfunction
mrand = myrand(5379, 0, 91, 4)
错误:
>> myrand
error: 't' undefined near line 2 column 15
error: called from
myrand at line 2 column 7
【问题讨论】:
-
您的代码在 Octave 中适用于我。你在命令行上执行它吗?如果它是脚本的一部分(例如 foo.m),请确保第一行不以函数声明开头。一种常见的方法是在开头添加
1; -
除了错误之外,这不是真正的
random,甚至不是pseudo-random,因为您的“随机”数字只是(200*t*n+p*n)/(10*d),这是一个简单的四的一对一函数变量。 -
你是把它保存为
myrand.m和然后 调用mrand = myrand(5379, 0, 91, 4),还是在命令行中同时执行函数声明和函数调用? (在这种情况下,MATLAB 会向您抛出错误“此环境中不允许函数声明”,不确定 Octave) -
@Adriaan 是的,octave 允许内联函数定义,matlab 不允许。 (虽然显然这听起来像 2016b 会)