Springen naar inhoud

Matlab boxplot


  • Log in om te kunnen reageren

#1

Wouter_Masselink

    Wouter_Masselink


  • >5k berichten
  • 8250 berichten
  • VIP

Geplaatst op 26 september 2011 - 09:02

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
??? Error using ==> boxplot
Too many input arguments.

De code die ik gebruik is
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
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

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 26 september 2011 - 09:33

...
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.

Veranderd door Xenion, 26 september 2011 - 09:34


#3

DePurpereWolf

    DePurpereWolf


  • >5k berichten
  • 9240 berichten
  • VIP

Geplaatst op 26 september 2011 - 09:36

Ik vraag me af of dit weer een probleem is met string en double.
Kun je X = DataX {:,1};
als X = DataX(:,1); defineren?

#4

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 26 september 2011 - 09:49

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

#5

Wouter_Masselink

    Wouter_Masselink


  • >5k berichten
  • 8250 berichten
  • VIP

Geplaatst op 26 september 2011 - 15:54

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

#6

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 26 september 2011 - 19:24

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

#7

Wouter_Masselink

    Wouter_Masselink


  • >5k berichten
  • 8250 berichten
  • VIP

Geplaatst op 27 september 2011 - 02:42

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





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures