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 Kommentar

Stephen23
Stephen23 am 27 Aug. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

the cyclist
the cyclist am 27 Aug. 2015

0 Stimmen

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

0 Stimmen

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 am 27 Aug. 2015

0 Stimmen

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

Kategorien

Mehr zu Software Development Tools finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Noch keine Tags eingegeben.

Gefragt:

JFz
am 27 Aug. 2015

Beantwortet:

JFz
am 27 Aug. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by