我使用arrayfun绘制自定义函数的结果,该函数执行一些逻辑,查找和计算。我的原始电话看起来与此类似:
plot(x, arrayfun(@Q, x.^2, someNumericVariable));
这很有效。但是,除了someNumericVariable参数之外,我还想添加另一个参数someStringVariable,所以我将其更改为:
plot(x, arrayfun(@Q, x.^2, someNumericVariable, someStringVariable));
然而,当试图使用它时,我收到一个错误:
error: arrayfun: dimensions mismatch
我猜这是因为GNU Octave文档中的这一行而发生的:
如果给定多个数组输入参数,则所有输入参数必须具有相同的大小 (https://www.gnu.org/software/octave/doc/interpreter/Function-Application.html)
所以我假设我尝试传递的字符串被视为一个数组,它的维度与数值常量值不同?
如果是这样,在保持代码语法简洁的同时,我是否可以做任何变通办法?
答案 0 :(得分:1)
在MATLAB中可以使用的一种解决方法是:
plot(x, arrayfun(@(u,v) Q(u,v,someStringVariable), x.^2, someNumericVariable));