User-Defined function to add polynomials
Show older comments
function p= polyno(p1,p2,operation)
%Write a user-defined function that adds are substract polynomials of any two orders
len_p1=length(p1);
len_p2=length(p2);
if len_p1 > len_p2
tmp=[zeros(1:len_p1-len_p2),p2];
p2=tmp;
elseif len_p1 < len_p2
tmp=[zeros(1:len_p2-len_p1),p1];
p1=tmp;
end
if operation == 'Add'
p = p1 + p1;
elseif operation == 'Subtract'
p = p1 - p2;
else
error('Must enter "Add" or "Subtract" to complete operation')
end
end
I know there is a lot of problems witht the code, but the main problems is that it wont add diffrent ordered polynomials correctly, and also it doesnt let me subtract polynomials, it tells me theres an error with the line of the code that tells it to add. How would I go about fixing this?
5 Comments
Walter Roberson
on 14 Dec 2019
You should use strcmp not ==
Walter Roberson
on 14 Dec 2019
Hint: zeros can be called with a difference between lengths. If the difference is positive then zeroes will be creating an appropriate padding. If the difference in length is 0 or negative then zeros will not give an error message and will silently create empty padding. If you think about this you will see that you do not need to tests the relative length first: you can just go ahead and pad and everything will turn out the right size.
Jose De La Pena
on 14 Dec 2019
Jose De La Pena
on 14 Dec 2019
Walter Roberson
on 14 Dec 2019
Remember that zeros(1:5) is the same as zeros([1,2,3,4,5]) which creates a n array that is 1 * 2 * 3 * 4 * 5
Answers (0)
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!