Not enough input arguments when using bar()

245 visualizzazioni (ultimi 30 giorni)
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 Commenti
Mario Malic
Mario Malic il 20 Set 2023
Maybe you have a function called bar in your current folder?
which bar
/MATLAB/toolbox/matlab/specgraph/bar.m
Raghav Rathi
Raghav Rathi il 20 Set 2023
/usr/local/MATLAB/R2023a/toolbox/matlab/specgraph/bar.m
There is no other function named bar in the PWD

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 20 Set 2023
Use the categorical function —
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.
.

Più risposte (1)

Dyuman Joshi
Dyuman Joshi il 20 Set 2023
Modificato: Dyuman Joshi il 20 Set 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)

Categorie

Scopri di più su 2-D and 3-D Plots in Help Center e File Exchange

Tag

Prodotti


Release

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by