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

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.

댓글을 달려면 로그인하십시오.

답변 (3개)

the cyclist
the cyclist 2015년 8월 27일

0 개 추천

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

댓글 수: 1

JFz
JFz 2015년 8월 27일
Let me take a look at how to use unique. Thanks.

댓글을 달려면 로그인하십시오.

JFz
JFz 2015년 8월 27일

0 개 추천

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 2015년 8월 27일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

태그

아직 태그를 입력하지 않았습니다.

질문:

JFz
2015년 8월 27일

답변:

JFz
2015년 8월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by