Matlab boxplot

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 8.557

Matlab boxplot

Ik ben bezig om een m-file te schrijven om een boxplot uit te voeren. Hiervoor heb ik twee datasets (wildtype en mutant) waarbij elke in een .csv file zitten verpakt.

Ik lees de CSV file in en specificeer waar in de file de relevante data staat. Echter als ik de plot will runnen dan krijg ik de volgende foutmelding

Code: Selecteer alles

??? Error using ==> boxplot

Too many input arguments.
De code die ik gebruik is

Code: Selecteer alles

function boxplots

h=gcf

close(h)

% Import wildtype track speed

[filename,pathname,index]=uigetfile('*.csv','select wildtype data file','/Users/wmasseli/Desktop/microscopy data');

fid1=fopen(strcat(pathname,filename));

% Import speed file

[filename,pathname,index]=uigetfile('*.csv','select mutant data file','/Users/wmasseli/Desktop/microscopy data');

fid2=fopen(strcat(pathname,filename));

% Read 3 header lines

HeadersX = textscan(fid1, repmat('%s', 1, 4), 3, 'Delimiter', ',')

% Read body

DataX = textscan (fid1, '%f%s%s%d', 'Delimiter', ',')

%Close file

fid1 = fclose(fid1);

% Read 3 header lines

HeadersY = textscan(fid2, repmat('%s', 1, 4), 3, 'Delimiter', ',')

% Read body

DataY = textscan (fid2, '%f%s%s%d', 'Delimiter', ',')

%Close file

fid2= fclose(fid2);

X = DataX {:,1};

Y = DataY {:,1};

boxplot([X,Y], 'notch', 'on')

% Create xlabel 

s1 = HeadersX{1,1}(1,1);

s2 = DataX{1,2}(1,1);

s = [s1,s2];

xlabel(s,'FontSize',16);

% Create title

title('boxplot comparison','FontSize',20);

end
Ik kan er maar niet achter komen waar dit overschot aan input argumenten vandaan komt. Als iemand een idee heeft dan zou ik dat graag horen.

Voor de volledigheid, de .csv files hebben de volgende lay-out

Code: Selecteer alles

Track Duration

 ==================== 

Value,Unit,Category,ID,

54.000,s,Track,1000000000,

47.000,s,Track,1000000001,

44.000,s,Track,1000000002,

43.000,s,Track,1000000003,

3.000,s,Track,1000000004,

35.000,s,Track,1000000005,

29.000,s,Track,1000000006,

27.000,s,Track,1000000007,

27.000,s,Track,1000000008,

25.000,s,Track,1000000009,
"Meep meep meep." Beaker

Gebruikersavatar
Berichten: 2.609

Re: Matlab boxplot

Wouter_Masselink schreef:...

boxplot([X,Y], 'notch', 'on')

...
Heb je al eens geprobeerd van gewoon X, Y te schrijven zonder de [ ] rond?

Als het dat niet is dan weet ik het ook niet.

Gebruikersavatar
Berichten: 9.240

Re: Matlab boxplot

Ik vraag me af of dit weer een probleem is met string en double.

Kun je X = DataX {:,1};

als X = DataX(:,1); defineren?

Gebruikersavatar
Berichten: 7.224

Re: Matlab boxplot

DePurpereWolf schreef:Ik vraag me af of dit weer een probleem is met string en double.

Kun je X = DataX {:,1};

als X = DataX(:,1); defineren?
In het eerste geval wordt X een array, in het tweede geval een cell-array. Het tweede is niet toegestaan in (box)plot commando's.

Wat voor data bevat X en Y?
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

Gebruikersavatar
Berichten: 8.557

Re: Matlab boxplot

Deze bevatten beide doubles.
"Meep meep meep." Beaker

Gebruikersavatar
Berichten: 7.224

Re: Matlab boxplot

Code: Selecteer alles

x = [1 2 3 4 5]';

y = [ 2 4 5 4 3]';

boxplot([x, y], 'notch', 'on');


werkt gewoon bij mij.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

Gebruikersavatar
Berichten: 8.557

Re: Matlab boxplot

En exact die code doet het bij mij niet.

EDIT: en ik ben er ook achter waarom niet. Ik had een m-file geschreven welke gesaved was met de naam 'boxplot'. Hierdoor verwees boxplot niet meer naar de ingebakken functie maar naar de m-file.
"Meep meep meep." Beaker

Reageer