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에서 Language Fundamentals에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by