필터 지우기
필터 지우기

How to identify same pattern with phase difference among rows?

조회 수: 1 (최근 30일)
Iro
Iro 2015년 5월 15일
편집: Iro 2015년 5월 18일
Hi all!
I have constructed a matrix (254864x6) with the following logic: Create all possible combinations of six integers (representing time intervals) between 5 and 20 that sum up to 60. This actually represents the time interval between two consecutive discrete events (6 such events in total) that have a repetition period T=1hour.
I know that this matrix has "double rows" in the sense that the same pattern repeats (if the observation period is e.g. 6h) but with some phase difference. For example, the rows:
5 5 20 20 5 5
and
5 5 5 5 20 20
or
10 10 15 15 5 5
and
15 15 5 5 10 10
My question is, how can I identify these rows, in a robust way, so I can save some memory and calculation time (by discarding them) in what I am doing further with this script (which uses this matrix as an input to some other process)?
Thanks,
Iro
  댓글 수: 5
Walter Roberson
Walter Roberson 2015년 5월 18일
By the way, the reason for going for the largest digits first is that the amount of memory required is determined by the final dimension, so you want the final dimension to be less than the maximum.
Iro
Iro 2015년 5월 18일
편집: Iro 2015년 5월 18일
Hi Walter, thanks a lot for your reply!
I am a bit confused when it comes to the use of this logical encounter and what is the purpose of comparing its length to idx, which is a vector, according to this implementation:
function find_phase_shift(A) % A has already shifted order
subtract_value=(min(min(A)))-1; % =4
A=A-subtract_value;
sub_ind_value=max(max(A)); %16 (=20-4)
sub_ind_vec=sub_ind_value*ones(1,length(A));
for i=1:size(A,1)
idx = sub2ind(sub_ind_vec, A(i,:)); % idx = sub2ind([16 16 16 16 16 16], TheVector)
% size_idx=1x6...
%...logical encounter?
end
%...
end
Could you be a bit more detailed in that? Or am I getting something wrong here?
Also, I changed the precision to int8 and I still get 16777216 rows of possible combinations but only 254864 when I filter those which sum up to 60...
Thanks again!
Iro

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

답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by