MATLAB方程作为用户输入使用

时间:2016-09-22 14:35:19

标签: matlab function input

我试图写一个简单的脚本来请求一个方程作为输入,我喜欢用这个函数多次计算而不总是请求用户输入。

我当前的脚本将f定义为函数句柄并执行了2次函数,所以我总是要求一个新的等式,这是不可取的。

f = @(x) input('f(x) = ');
a = f(2);   % requests user input
b = f(3);   % requests user input again

它看起来应该更像(不工作)。

func = input('f(x) = ');
f = @(x) func;
a = f(2);
b = f(3);

这里没有用户输入来了解我试图实现的目标。

f = @(x) x^2;
a = f(2);
b = f(3);

我想我找到了一个符号数学工具箱的解决方案,但我没有这个插件,所以我不能使用/测试它。

还有其他解决方案吗?

1 个答案:

答案 0 :(得分:4)

此处不需要符号数学工具箱。您仍然可以使用Shape。请记住,input的默认方法是直接获取输入并将其指定为变量,其中根据MATLAB规则假定输入在语法上是正确的。那不是你想要的。您需要使用def check_if_element_appeared(self, element_locator, renew_locator, renew_interval=10, wait_interval=300): if not self.is_visible(renew_locator): raise AssertionError("Error Message") start_time=int(time()) scan_time = start_time if not self.is_visible(element_locator): while int(time())<=start_time+wait_interval: if int(time()) >= scan_time + renew_interval: scan_time = int(time()) self.click_element(renew_locator) if self.is_visible(element_locator): break if not self.is_visible(element_locator): raise AssertionError("Error Message") self._info("Message") else: self._info("Current page contains element '%s'." % element_locator) 选项作为第二个参数将输入作为字符串,然后使用str2func将字符串转换为匿名函数:

input

请注意,我必须将's'匿名函数字符串与您使用func = input('f(x) = ', 's'); f = str2func(['@(x) ' func]); a = f(2); b = f(3); 提供的输入函数连接。

运行示例

假设我想创建一个对输入中的每个元素进行平方的函数:

@(x)

请特别注意,我假设函数将元素方式平方输入中的每个元素。取幂运算符前面的input运算符(即>> func = input('f(x) = ', 's'); f(x) = x.^2 >> f = str2func(['@(x) ' func]) f = @(x)x.^2 >> a = f(2) a = 4 >> b = f(3) b = 9 )非常重要。