Not enough input arguments when using bar()
64 views (last 30 days)
Show older comments
Raghav Rathi
on 20 Sep 2023
Commented: Star Strider
on 20 Sep 2023
Hi,
I am trying to generate a bar graph specifically 'Specify Bar Locations as String Vector' from the documentation.
x = ["Outdoor1" "Outdoor2" "Outdoor3" "Outdoor4"];
y = [540 524 515 424];
>> bar(x,y)
Error using bar
Not enough input arguments.
I am not able to figure out why am I getting the above error when the example mentioned in the documentation is pretty much the same but seems to be working.
2 Comments
Accepted Answer
Star Strider
on 20 Sep 2023
x = categorical(["Outdoor1" "Outdoor2" "Outdoor3" "Outdoor4"]);
y = [540 524 515 424];
figure
bar(x,y)
Another option is to use numerical values, for example 1:4 and then use ‘x’ as tick labels —
x = 1:4;
xl = ["Outdoor1" "Outdoor2" "Outdoor3" "Outdoor4"];
y = [540 524 515 424];
figure
bar(x,y)
set(gca,'XTickLabel',xl)
It all depends on what you want to do.
.
2 Comments
More Answers (1)
Dyuman Joshi
on 20 Sep 2023
Edited: Dyuman Joshi
on 20 Sep 2023
It works fine here - R2023b but does not on my MATLAB app - R2021a.
Since you have R2023a, it means that the support for string array as input to bar must have been implemented in R2023b.
Workaround > Convert x to a categorical array and then plot -
x = ["Outdoor1" "Outdoor2" "Outdoor3" "Outdoor4"];
x = categorical(x);
y = [540 524 515 424];
bar(x,y)
See Also
Categories
Find more on Bar Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!