Sorting and Saving a subset from the array

Hi there,
I have imported data from Excel and now have a 240X3 cell array called 'num'.
Once sorted it looks something like this:
16 1232 56
16 3455 56
16 5443 76
16 1232 88
17 4545 65
17 3432 87
All I want to do is for to write a for loop to select all rows of the data which start with 16's and then save it as another array say num_1, then take another chunk that starts with 17's and save it as num_2..etc.
How can I compose a for loop to take care of that. I have tried different measures based on other questions here in matlab central but to no avail.
Any help will be appreciated.
Sincerely yours; Nj

답변 (2개)

Walter Roberson
Walter Roberson 2012년 12월 29일

0 개 추천

unum = unique(num(:,1));
for K = 1 : length(unum)
these_num = num(num == unum(K), :);
num_{K} = these_num;
end
This will create num_{1}, num_{2} and so on. Creating actual new variables is not a good idea; see http://matlab.wikia.com/wiki/FAQ#How_can_I_create_variables_A1.2C_A2.2C....2CA10_in_a_loop.3F

댓글 수: 1

Niraj Poudel
Niraj Poudel 2012년 12월 29일
Hi Walter, Thank you for your prompt response. However when I run the code you just sent me, it keeps telling me that the index exceeds matrix dimensions, plus I do not see anywhere in the code where I can specify the rows starting with 16 and 17 and so forth?
Am I missing something? Any help will be appreciated. Nj

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

Andrei Bobrov
Andrei Bobrov 2012년 12월 29일
편집: Andrei Bobrov 2012년 12월 29일

0 개 추천

a0 = {16 1232 56
16 3455 56
16 5443 76
16 1232 88
17 4545 65
17 3432 87};
a = cell2mat(a0);
[b,~,c] = unique(a(a(:,1)>=16,1));
num = ...
[num2cell(b),cellfun(@(x)a(x,2:3),accumarray(c,(1:numel(c))',[],@(x){x}),'un',0)];

댓글 수: 2

Niraj Poudel
Niraj Poudel 2012년 12월 29일
For some reason this does not work either. In this code there does not seem anywhere that rows starting with 16 should be saved as a different array? And 17 and 18 and so forth? I might be wrong. please correct me if I am so. Thank you for your response.
Andrei Bobrov
Andrei Bobrov 2012년 12월 29일
corrected

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

카테고리

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

제품

질문:

2012년 12월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by