How can I split an array into different arrays defined by an index?

Hello all,
I have a large array of household income data and an index for the spatial unit the household is located in.
A= [AT1,24566;
AT1,40521;
AT2,32512;
BE1,66542;
.
.
.]
I would like to transform that array into arrays according to the spatial index so I can compute GINI coefficients in a next step.
Thank you Dragos

 Respuesta aceptada

Is AT1 a variable storing a number? or did you mean
A={'AT1',24566;
'AT1',40521;
'AT2',32512;
'BE1',66542 ...}
if A is stored as above than to extract AT1 household incomes you could do:
AT1_HouseHoldIncome=cell2mat(A(strcmpi(A(:,1),'AT1'),2))
AT1_HouseHoldIncome =
24566
40521

2 comentarios

I can think of another workaround. I assign to every region code a number (AT1 then becomes 1) and define my data as matrix. how would the code change?
Thanks a lot
If A is matrix like:
A=[1,24566;
1,40521;
2,32512;
3,66542 ...]
then
AT1_HouseHoldIncome=A( A(:,1)==1 ,2);
so A(:,1)==1 pretty much masks all those rows in first column that are storing 1 and then A( A(:,1)==1, 2) returns the second column for those rows.
Refer to Logical Indexing for more info on these type of indexing in MATLAB.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 15 de Oct. de 2015

Comentada:

el 16 de Oct. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by