Convert the variables x1, x2,... in an anonymous function to x(1,:) ,x(2,:).....

For example: f = @(x1, x2, ... , x15) x1 .* x2 .* ... .* x15
I want get: f = @(x) x(1,:) .* x(2,:) .* ... .*x(15,:)

답변 (2개)

Andrei Bobrov
Andrei Bobrov 2013년 3월 28일
편집: Andrei Bobrov 2013년 3월 28일
x = randi([-5 5],2,10); % this is your data
xc = num2cell(xc,2);
out = f(xc{:});
Azzi Abdelmalek
Azzi Abdelmalek 2013년 3월 28일
f=@(x) prod(x)

댓글 수: 4

Yes, but this is not a common method. If f is like: sin(x1)*x2/exp(x3)...
Azzi Abdelmalek
Azzi Abdelmalek 2013년 3월 28일
편집: Azzi Abdelmalek 2013년 3월 28일
If your function is different then change it. t's not clear for me what you want
Thank you!
For example, I mean how to convert
f = @(x1,x2)sin(x1) .* exp(x2)
to
f = @(x)sin(x(1,:)) .* exp(x(2,:))
automatically in the program.
You can't do conversion

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품

질문:

2013년 3월 28일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by