I have the following piecewise function that I want to use, but I need to send a vector to it. When I try to send the vector, it does not perform the piecewise function based on the condidtions and instead sends back a vector of the calcuation all for the same condition. How can I write this so that I can send the vector for it to come back as I want it based on the conditions?
function value=IC1_wave_func1(x)
if x < .25
value = x/25;
else
value = .015-x/50;
end
end

 채택된 답변

Kevin Cottrell
Kevin Cottrell 2020년 6월 3일

1 개 추천

Its not the prettiest and there's definitly better ways to do it but i decided to send it through a while loop and go peice by peice through the vector.
function value=IC1_wave_func1(x)
count = 1;
size = numel(x);
while count < size+1
mid1 = x(count)/25;
mid2 = .015-x(count)/50;
if (mid1 > mid2)
value(count) = mid2;
else
value(count) = mid1;
end
count = count+1;
end
end

추가 답변 (1개)

madhan ravi
madhan ravi 2020년 6월 3일

0 개 추천

doc piecewise

댓글 수: 1

I have looked at this and I have tried using it, but it keeps returning with "Check for missing argument or incorrect argument data type in call to function 'piecewise'."
function value=IC1_wave_func1(x)
value(x) = piecewise(x<.25, x/25, x>=.25, .015-x/50);
end

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

카테고리

도움말 센터File Exchange에서 Application Deployment에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by