How to colaapse a table to reduce repeated rows?

Ho,
I have a table of 6 columns. Many rows are the same. I want to collapse the same rows into one. So I use this lines to create a new table:
vMarket = 'AB';
tb='Summer';
tp = 1;
mask=strcmpi(cTblSet.VM(:),vMarket) & strcmpi(cTblSet.TB(:),tb) & (corrTblSet.TimePeriod(:) == tp);
newtable = cTblSet(mask, :);
But the newtable has 0 rows, it should have 20 rows.
The 'TimePeriod' column is all numbers. If the mask is only
mask=strcmpi(cTblSet.VM(:),vMarket) & strcmpi(cTblSet.TB(:),tb)
Then newtable has the right number of rows.
Why? Why a column of numbers are not working properly here? How to fix this problem? Thanks,
Jennifer

1 comentario

Stephen23
Stephen23 el 27 de Ag. de 2015
This time I formatted your code for you, but in future please do it yourself by selecting the code and clicking the {} Code button that you will find above the textbox.

Iniciar sesión para comentar.

Respuestas (3)

the cyclist
the cyclist el 27 de Ag. de 2015

0 votos

The simplest way to do what you want is probably to use the unique command, with the 'rows' option.
JFz
JFz el 27 de Ag. de 2015

0 votos

Thanks. But still I will need the mask to break the large table into smaller tables, because there is another column that is prices which is different for every row. I want to break the large table into smaller tables, each small has the same rows for the first 3 columns but different rows has different prices.
JFz
JFz el 27 de Ag. de 2015

0 votos

I guess the problem is in the '==' in the mask. When I change it to '~=', the newtable has some contents. Then why isn't "==" work?
Thanks,
Jennifer

Categorías

Más información sobre Software Development Tools en Centro de ayuda y File Exchange.

Productos

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

JFz
el 27 de Ag. de 2015

Respondida:

JFz
el 27 de Ag. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by