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 commentaire

Joe Vinciguerra
Joe Vinciguerra le 6 Sep 2022
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.

Connectez-vous pour commenter.

 Réponse acceptée

Torsten
Torsten le 6 Sep 2022
Modifié(e) : Torsten le 6 Sep 2022
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 commentaire

I guess it doesnt need to be it was just part of the question.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by