Scatter plot error: not enough input arguments

4 次查看(过去 30 天)
Hi all,
I am trying to create a scatter plot and I get the error:
Error using scatter Not enough input arguments.
I don’t know what other import arguments would be necessary here as there is an x and y. My code is as follows:
euler = 2.71828 ;
sigma = std(OL_All.EquivDiameter) ; % std(files.ESD) % standard deviation
mu = mean(OL_All.EquivDiameter) ; % mean(files.ESD) % mean
ESD_values = OL_All.EquivDiameter ; % files.ESD
sigma_sqrt2pi = sqrt(2 .* pi).^2 ;
ESD_mu_squared = (ESD_values - mu).^2 ;
sigma_squared_two = (2 .* sigma).^2 ;
f_of_x = table((1 / sigma_sqrt2pi) .* euler.^(-(ESD_mu_squared / sigma_squared_two))) ;
scatter(OL_All.EquivDiameter, f_of_x)

采纳的回答

Walter Roberson
Walter Roberson 2025-4-12
编辑:Walter Roberson 2025-4-14
f_of_x = table((1 / sigma_sqrt2pi) .* euler.^(-(ESD_mu_squared / sigma_squared_two))) ;
scatter(OL_All.EquivDiameter, f_of_x)
The permitted basic syntaxes for scatter are
  • scatter(x, y)
  • scatter(TableVariable, XVariableName, YVariableName)
You are not using either of those. You are using scatter(x, TableVariable)
Meanwhile, your table only has one variable, so you cannot specify it for scatter purposes.
What you can do is
scatter(OL_All.EquivDiameter, f_of_x.Var1)
However, I do not see much of a reason to put f_of_x into a table in the first place. I think you should just do
f_of_x = ((1 / sigma_sqrt2pi) .* euler.^(-(ESD_mu_squared / sigma_squared_two))) ;
scatter(OL_All.EquivDiameter, f_of_x)
  1 个评论
Kristine
Kristine 2025-4-14
I put f_of_x in a table, because i was previously getting an arror about mismatched types. But now when I just tried to re-run it without the table command it ran perfectly fine. So now I'm not sure why it wasn't working before.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Scatter Plots 的更多信息

产品


版本

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by