How to call a function with a vector?

27 ビュー (過去 30 日間)
Issie
Issie 2019 年 3 月 6 日
編集済み: Issie 2019 年 3 月 7 日
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 件のコメント
Stephen23
Stephen23 2019 年 3 月 6 日
You need to understand the difference between array and matrix operations, otherwise your MATLAB code will produce nonsense and you won't know why:
Stephen23
Stephen23 2019 年 3 月 6 日
編集済み: Stephen23 2019 年 3 月 6 日
@Issie: you forgot to actually call the function. What you did:
>> 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).

サインインしてコメントする。

回答 (1 件)

Kevin Phung
Kevin Phung 2019 年 3 月 6 日
編集済み: Kevin Phung 2019 年 3 月 6 日
if you are multiplying or dividing vectors, include the element-wise operator
.* %multiplication
./ %division
example documentation:
  3 件のコメント
Adam
Adam 2019 年 3 月 7 日
編集済み: Adam 2019 年 3 月 7 日
h will be a vector if b is and h is multiplied and a division used to create it from b.
Kevin Phung
Kevin Phung 2019 年 3 月 7 日
編集済み: Kevin Phung 2019 年 3 月 7 日
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)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by