매개 변수로 전송되는 함수와 벡터를 평가하는 matlab 함수를 작성하려고합니다. 나는 힘든 시간을 MATLAB 함수에서 평가할 수 있도록 함수를 보내는 방법을 알아 내려고 애 쓰고있다. 나는 함수없이 그것을하는 방법을 알아 냈다. 그러나 나는 matlab 함수 내에서 그것을 평가하려고 애 쓰고있다. 다음은 내 코드 ... 함수를 matlab 함수로 보내기
이
내가 할 노력하고있어입니다 ...x = [x1 x2]';
f = x(x1)^2 + 2 * (x2)^2
x = [5 10];
f = (5)^2 + 2 * (10)^2 % which I would like to return 225, not a column vector
이
내가 시도 내가 가진 것을하고는 ...입니다x = [5 10]';
% without using a matlab function
% k = 1
% f = x(k)^2 + 2 * x(k + 1)^2; % returns the correct answer of 225
f = x^2 + 2 * x^2 % complains about the scalar 2
f = x.^2 + 2 * x.^2 % returns a column vector [75; 300]
function [value] = evalFunction(f,x)
value = f(x);
나는 ...
f = @(x) x.^2 + 2 * (x+1).^2;
value = evalFunction(@f,x) %Error: "f" was previously used as a variable
그래서 나는 시도 ... 시도했습니다
f = @(x) x.^2 + 2 * (x+1).^2;
value = evalFunction(f,x) %value = [97;342]
나는 모든 도움을 주시면 matlab에 익숙합니다. 나는 약간의 연구를 해왔고 stackoverflow에 몇 가지 물건을 발견했지만 작동시키지 못했다. 나는이 일을하는 다른 방법이 있다는 것을 알았지 만, 결국에는 matlab evalFunction 함수에 더 많은 코드를 추가 할 것이므로이 방법을 사용하고 싶습니다. 감사!
주 '의 차이 [1 2]^2' (행 벡터에 행렬 승산을 수행하기 위해 시도하고, 오류가 발생되는)와'[1 2].^2'는'요소 별 곱셈 '을 수행합니다 - 결과는'[1 * 1 2 * 2]'또는'[1 4]'입니다. 그 외에도 "함수 핸들"은 실제로 당신이 알아야 할 것입니다. @ chappj의 답변에는 도움이되는 링크가 포함되어 있습니다. – Floris
내 업데이트 된 질문을 참조하십시오.도와 주셔서 감사합니다. – user2743
더 정확한 내용을 말하고 끝에 적절한 질문을하지 않기 위해 질문을 업데이트했습니다.> – user2743