calculate the function in vector.

3 Ansichten (letzte 30 Tage)
JaeSung Choi
JaeSung Choi am 12 Jun. 2017
Kommentiert: JaeSung Choi am 13 Jun. 2017
I want to calculate my 'poly' function for domain of linspace(0,1,100) so I tried ---------------------------------
%make poly function
function [output] = poly(input)
output= ([input^0 input^1 input^2 input^3 input^4 input^5]*transpose([1.0000 1.0001 0.4991 0.1703 0.0349 0.0139]) )
end
----------------------------------
x = linsapce(0,1,100)
poly(x)
----------------------------------
but it doesn't work. I found that for sin(x) it does. I want to know what's different between to func. and how to solve the problem.
  1 Kommentar
KSSV
KSSV am 12 Jun. 2017
What is the input you used? You have to take care of element by element operations.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 13 Jun. 2017
Bearbeitet: Andrei Bobrov am 13 Jun. 2017
function [output] = AsPolyvalForJaeSung(input)
output = bsxfun(@power,input(:),0:5)*[1.0000;1.0001;0.4991;0.1703;0.0349;0.0139];
end
  1 Kommentar
JaeSung Choi
JaeSung Choi am 13 Jun. 2017
Oh my god, you exactly catched what i wanted. Thank you very much!!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

KSSV
KSSV am 12 Jun. 2017
For
input = linspace(0,1,100) ;
In the line
output= ([input.^0 input.^1 input.^2 input.^3 input.^4 input.^5]*transpose([1.0000 1.0001 0.4991 0.1703 0.0349 0.0139]) )
The size of term in square braces would be 1X600 where as the term transpose i.e second term got only 6X1 terms. How you expect them to multiply? You need to rethink on your code.
  1 Kommentar
JaeSung Choi
JaeSung Choi am 12 Jun. 2017
That's what I'm in problem. I want to derive y = [poly(0) poly(0.01) ...... poly(1)] (i.e. calculate for each domain) As for 'sin' function If we take x = linspace(0,1,100) y = sin(x) then y = [sin(0) sin(0.01) sin(0.02)..... sin(1)] I want to do same for my own function

Melden Sie sich an, um zu kommentieren.


Torsten
Torsten am 12 Jun. 2017
output= ([(input.').^0 (input.').^1 (input.').^2 (input.').^3 (input.').^4 (input.').^5]*([1.0000 1.0001 0.4991 0.1703 0.0349 0.0139]).'
Best wishes
Torsten.
  2 Kommentare
JaeSung Choi
JaeSung Choi am 12 Jun. 2017
I've already tested for the same code. Thanks for your answer but that's not what I needed.
Torsten
Torsten am 13 Jun. 2017
??
According to your question, I think this is exactly what you needed.
Best wishes
Torsten.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!