Insert multidimensional array into function handle
3 次查看(过去 30 天)
显示 更早的评论
Hi,
I'm trying to solve a symbolic var from a function f(x,y), that should take pairs (x,y) as input.
However, MATLAB does not accept the array as input to a function handle to calculate them as a result array.
My code:
syms c
o = [ c 0 0; c 0 2; c 1 1; c 1 2; c 2 2; c 2 3; c 3 0; c 3 1; c 3 2; c 3 3 ]
f = @(c,x,y) c*(x+y)
eq = sum(arrayfun(f, o)) == 1 % ERROR FROM arrayfun() -> doesnt understand the multidim array input
solve(eq, c)
Gives this error:
"Not enough input arguments.
Error in @(c,x,y)c*(x+y)".
Thanks in advance!
0 个评论
采纳的回答
Steven Lord
2021-3-23
syms c
o = [ c 0 0; c 0 2; c 1 1; c 1 2; c 2 2; c 2 3; c 3 0; c 3 1; c 3 2; c 3 3 ];
f = @(c,x,y) c.*(x+y); % Use element-wise multiplication
V = f(o(:, 1), o(:, 2), o(:, 3))
solve(sum(V) == 1, c)
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!