How to call a function with a vector?
Ältere Kommentare anzeigen
I need to modify the following code so that the function can be called with a vector for the value of b instead of just a single value. Any ideas?
4 Kommentare
dpb
am 6 Mär. 2019
To vectorize expressions to operate on element basis, use the "dot" operators...
f=@(x) cos(x.^2);
Whereever else you have similar expressions, must make same fixes.
See the section "Array vs. Matrix Operations" under the "Operators and Elementary Operations" section.
Stephen23
am 6 Mär. 2019
You need to understand the difference between array and matrix operations, otherwise your MATLAB code will produce nonsense and you won't know why:
>> result = (@(x) sin(x.^2), 0, 3, 50)
^^ Where is the function you want to call?
What you need:
>> result = fresnelS(@(x) sin(x.^2), 0, 3, 50)
^^^^^^^^ Your function !!!
PS: please do not post screenshots, posting actual text is much better (we already know what error message look like).
Antworten (1)
Kevin Phung
am 6 Mär. 2019
Bearbeitet: Kevin Phung
am 6 Mär. 2019
if you are multiplying or dividing vectors, include the element-wise operator
.* %multiplication
./ %division
example documentation:
3 Kommentare
madhan ravi
am 7 Mär. 2019
? where was vector multiplied or divided?
Kevin Phung
am 7 Mär. 2019
Bearbeitet: Kevin Phung
am 7 Mär. 2019
Thanks Adam. To clarify, given b is a vector , y and h would become vectors in:
h = (b-a)./n;
y = f(a)+f(b); %where f is cos(x^2)
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!