I defined a function that computes a specific sum and now I want to plot it over x where 0<x<1. I am getting an error saying incompatible sizes and am not sure how to fix it.
f = @(x,y,z) sum(sin((3:15).*sqrt(x*y))+z);
x = linspace(0,1,10);
y = 0.5;
z = 0.1;
plot(x,f(x,y,z))

1 件のコメント

Joe Vinciguerra
Joe Vinciguerra 2022 年 9 月 6 日
You have two arrays in the function of different sizes that you are trying to compute together, namely "x" and [3:15]. They need to be the same size for your function to work. How you resolve that depends on your intent.

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

 採用された回答

Torsten
Torsten 2022 年 9 月 6 日
編集済み: Torsten 2022 年 9 月 6 日

1 投票

f = @(x,y,z) sum(sin((3:15).*sqrt(x*y))+z);
x = linspace(0,1,100);
y = 0.5;
z = 0.1;
plot(x,arrayfun(@(x)f(x,y,z),x))
But is it really correct to have the constant value z within the sum ?

1 件のコメント

Benjamin Collier
Benjamin Collier 2022 年 9 月 6 日
I guess it doesnt need to be it was just part of the question.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Creating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by