Sending vector to Piecewise Functions

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

 Accepted Answer

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

More Answers (1)

doc piecewise

1 Comment

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

Sign in to comment.

Categories

Find more on Application Deployment in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!