vectorization of piecewise defined function
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
need to calculate output of
f(x)={3x^2+5, x<0 [and]
-3x^2+5, x>=0}
using vectorization and one output vector and cannot figure out. it is for a class assignment and I know it can easily be done with loops and conditional statements, but part of my lab requires it being calculated using vectorization with only one output vector. needs to be done on domain -9<=x<=9. input vector is not the problem, its calculating the piecewise defined output. please help!
0 Kommentare
Antworten (3)
dpb
am 30 Mai 2016
Well, as homework it's not kosher to just provide the solution; that does you no good in learning...
HINT: type
doc 'logical indexing' % at command line and see if doesn't lead you to some useful information
Star Strider
am 30 Mai 2016
You came very close with your own code. I added a couple multiplication operators and a couple piece-wise multiplication operators to your code to get this:
f = @(x) (3*x.^2+5).*(x<0) + (-3*x.^2+5).*(x>=0);
t = linspace(-5, 5);
figure(1)
plot(t, f(t))
grid
The code works by creating a logical vector with the logical tests that are true or 1 where the test is true, and false or 0 elsewhere for each test and so for each calculation as well. These logical values are converted to their numerical equivalents when you use them in calculations.
2 Kommentare
Siehe auch
Kategorien
Mehr zu Assumptions finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!