0
나는 그것을 추적 할 수없는 가망 하나 개의 익명의 함수로 모든 기능을 추가하는 것입니다 루프추가 익명 함수는 MATLAB
for i = 1: n
f = @(x) x + vec(i)
end
이 ??
감사합니다.
나는 그것을 추적 할 수없는 가망 하나 개의 익명의 함수로 모든 기능을 추가하는 것입니다 루프추가 익명 함수는 MATLAB
for i = 1: n
f = @(x) x + vec(i)
end
이 ??
감사합니다.
내가 제안 할 수있는 최선은 점진적으로이처럼 기능을 추가하는 것입니다 : 당신은 기능 핸들의 cell array를 작성하고 평가하는 cellfun
를 사용할 수
n = 10;
vec = rand(1,n); % Random data
f = @(x)x + vec(1); % Initial function
for i = 2:n
f = @(x)x + vec(i) + f(x); % Add previous sum to next
end
x = 2;
s = f(x) % Evaluate
은 이후 각각 개별적으로 기능과 합계를 저장해야하는 경우 이것이 당신의 교류에 따라 매우 비효율적 일 수 있지만
n = 10;
vec = rand(1,n); % Random data
f = cell(1,n); % Pre-allocate cell
for i = 1:n
f{i} = @(x)x + vec(i) % Save a handle to each function in cell array
end
x = 2;
s = sum(cellfun(@(c)c(x),f)) % Evaluate each function at x and sum
는 또 다른 옵션이 Symbolic Math을 사용하여이 작업을 수행하는 것입니다 : x
의 특정 값에 대한 그들 모두 tual 기능 :
n = 10;
vec = rand(1,n); % Random data
syms x;
f(x) = x+vec; % Create vector function
x = 2;
s = double(sum(f(x))); % Evaluate and convert to floating point
그것은 실제 문제가 무엇인지 아는 것이 불가능하고 어떤 이들은 더 자세한 질문없이 당신을 위해 작동, 그래서 것입니다 경우 특정 응용 프로그램에 대해 상당히을 변경해야 할 수도 있습니다.
나는이 함수가 전혀 이해할 수 없다는 것을 잘 모르지만, 합산하고자하는 것이 무엇인지 설명해 주시겠습니까? 'vec'의 첫 번째'n' 요소는'x'만큼 증가해야합니까? 또는'n '개의 분리 함수를 원한다. 각 함수는'vec (i)'를'x'만큼 증가시킬 것이다. – mpaskov
이렇게 각 루프의 기능 X + 1 가 X + 4 가 X + 3 가 X + 56 가 제가하려는 것은 함수이다 (X + 1) + (X + 4) + (x + 3) + (x + 56) + ... – user3532764
이렇게 서로 다른 숫자 ('vec'에서 미리 정의 된)를'x'에 추가하는'n' 개의 다른 함수가 필요합니다. 그리고 당신이'n' 함수를 가지고 나면, 동시에 그것들과 함께 무엇인가하고 싶습니다. – mpaskov