Programmering

MATLAB

20. januar 2015 af 09xcc

Jeg har lavet et plot, men afstanden mellem søjlerne i plottet er forskellig. Er der nogen, der ved hvordan det ændres?

Vedhæftet fil: Udklip2.PNG

Brugbart svar (0)

Svar #1
20. januar 2015 af maddse (Slettet)

Du kan omdefinere

binranges = [1 2 3 4 5 6 7];

 og overskrive labels på x-aksen via

set(gca,'XTickLabel',{'-3','0','2','4','7','10','12'})


Svar #2
20. januar 2015 af 09xcc

På den måde tæller bincount hvor mange gange tallene [ 1 2 3 4 5 6 7] går igen i min x. Så kan ikke se hvordan det kan bruges?


Brugbart svar (0)

Svar #3
20. januar 2015 af Keal (Slettet)

#2 Det er naturligvis også kun når du plotter at du skal bruge den omdefinerede binranges.

En nemmere løsning er at definere x som kategoriske data og så bruge hist funktionen:

function gradesPlot(grades)

gradesFinal = computeFinalGrades(grades);
x = categorical(gradesFinal);
hist(x);
 


Svar #4
20. januar 2015 af 09xcc

Jeg kan ikke rigtig få det til at fungere. 

Får følgende fejlmeddelelse, når jeg gør som beskrevet i svaret ovenfor:

Error using categorical/hist (line 53)
X must be a cell array of strings or a categorical array.

Error in gradesPlot (line 7)
[bincounts] = hist(x,binranges);% Tæller hvor mange gange de enkelte karakterer går igen.


Brugbart svar (0)

Svar #5
20. januar 2015 af Keal (Slettet)

Du behøver ikke bruge binranges når x er kategorisk, men hvis du gjorde så siger fejlen at binranges skal være categorical ligesom x.


Skriv et svar til: MATLAB

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.