Anonymous function/ Loop
조회 수: 9 (최근 30일)
이전 댓글 표시
Hello,
I'm trying to solve an anonymous function with fzero but with one of the variable being a vector.
So if
w = linspace(0,1,500);
And my anonymous function is
anon = @(y) y*3-w*0.2;
Solving for each y when the equation is set to zero
answer = fzero(anon,1)
But I am getting the error:
Operands to the and && operators must be convertible to logical scalar values.
Error in fzero (line 308) elseif ~isfinite(fx) ~isreal(fx)
Error in Homework (line 39) answer = fzero(anon,1)
.
My guess would be a loop, but I'm unsure how to go about it. If someone were able to help me out, I would greatly appreciate it!!
댓글 수: 0
채택된 답변
Andrei Bobrov
2016년 2월 18일
편집: Andrei Bobrov
2016년 2월 18일
anon = @(y,w) y*3-w*0.2;
w = linspace(0,1,500);
answer = arrayfun(@(y)fzero(@(x)anon(x,y),1),w);
or
anon = @(y,w) y*3-w*0.2;
w = linspace(0,1,500);
answer = zeros(500,1);
for jj = 1:500
answer(jj) = fzero(@(x)anon(x,w(jj)),1);
end
댓글 수: 2
Andrei Bobrov
2016년 2월 18일
B = 4;
a = 2*pi;
sigma = 0.1;
anon = @(y,rbar) y^2*8*(2/pi)* acos(exp(-((B/2)*((1-y)/rbar))))-sigma*a*(rbar*(0.3-0.2*rbar)-y);
rbar = linspace( eps, 1,500);
answer = arrayfun(@(y)fzero(@(x)anon(x,y),1),rbar);
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 General Applications에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!