I have a matrix of occurences (7 rows(countries),46 columns(number of shoes)), n - number of occurences - for example in "a" I have n1=450, single pair of shoes...
1 2 3 .... 46
a n1 n2 n3 .... n46
b
.
. . g
I would like to produce 7 boxplots representing the distribution in each category a-g. Normally I would have 450 times 1, n2 times 2 etc... is there a simple way to do it? Does anybody have a suggestion for a nicer representation than the boxplot?
Thank you

 Respuesta aceptada

Tom Lane
Tom Lane el 16 de Mzo. de 2012

0 votos

This may partially answer what you want. Step 1 would be to take the data for "a" and stretch it out as you describe. Here's one way to expand a data vector according to a vector of frequencies:
f = [4 3 0 1 2]; % frequencies
d = [1 2 3 4 5]; % data
c = [0, cumsum(f)]; % cumulative sum of frequencies
x = zeros(1,c(end));
for j=1:length(c)-1
x(c(j)+1:c(j+1)) = d(j); % insert each value as required
end

2 comentarios

New
New el 18 de Mzo. de 2012
Thank you!
Benoit Espinola
Benoit Espinola el 10 de Jun. de 2020
This could become an issue if you have very large frequencies.
For instance:
d = [1 2 3 4 5];
f = [4e10 3e9 0 1e10 2e11];
You could endup with a variable with a length of 2.53e11 (which is massive).
I tried it and I get the following error:
Error using zeros
Requested array exceeds the maximum possible variable size.
How can you deal with such a scenario?

Iniciar sesión para comentar.

Más respuestas (1)

Tom Lane
Tom Lane el 14 de Mzo. de 2012

0 votos

It seems like 1:46 represents your possible data values and [n1 n2 ... n46] represents the frequency of each value. If you "edit mle" and look toward the bottom, it has a little function that expands this sort of representation into a vector with n1 copies of 1, n2 copies of 2, and so on. You could try copying this code to your own function. A warning is that you will need to remove values with a frequency of zero before calling the function.
If you're not comfortable doing this, or if I haven't answered your question, let me know.

1 comentario

New
New el 15 de Mzo. de 2012
Couldn't make it work properly...
Some easier way?
Thanks

Iniciar sesión para comentar.

Preguntada:

New
el 13 de Mzo. de 2012

Comentada:

el 10 de Jun. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by