Decompose Data int a Matrix

조회 수: 1 (최근 30일)
Mansour Aljohani
Mansour Aljohani 2015년 7월 29일
댓글: Star Strider 2015년 8월 10일
I got how to locate my data from the signal in the following link: http://www.mathworks.com/matlabcentral/answers/229678#answer_185935
but how to decompose my data int a matrix. I attached my row data.
  댓글 수: 2
Azzi Abdelmalek
Azzi Abdelmalek 2015년 7월 29일
Decompose Data int a Matrix? What does that mean?
Mansour Aljohani
Mansour Aljohani 2015년 7월 30일
each column in the matrix has one pulse from the row data in this example i have 8 column.

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

채택된 답변

Star Strider
Star Strider 2015년 7월 30일
The data you want is when the ‘lowSignal’ vector is equal to 1. If each column in your matrix has one pulse from that record, the separation has already been done. By definition, each column is a pulse, so if your matrix is ‘M’ and it is of size (Nx8), where ‘N’ is the number of rows, to get the first and eighth pulses:
Pulse_1 = M(:,1);
Pulse_8 = M(:,8);
  댓글 수: 8
Mansour Aljohani
Mansour Aljohani 2015년 8월 9일
Dear Strider,
why i got this
Error in threshold (line 33) sig_mtx(:,k1) = signal(epk_start(k1):epk_end(k1));
and thank you again.
Star Strider
Star Strider 2015년 8월 9일
I have no idea. My code worked with your data, or I’d not have posted it.
What was the error?

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

추가 답변 (1개)

Mansour Aljohani
Mansour Aljohani 2015년 8월 9일
the error is in this, it said
Subscripted assignment dimension mismatch.
Error in threshold (line 33)
sig_mtx(:,k1) = signal(epk_start(k1):epk_end(k1));
  댓글 수: 2
Mansour Aljohani
Mansour Aljohani 2015년 8월 9일
Now it is work thank you so much for you help sir
Star Strider
Star Strider 2015년 8월 10일
My pleasure.
That usually means the array sizes between the LHS and RHS of an assignment don’t match. My code assumes all the ‘epochs’ (as I called them) were of equal lengths, since they were the same in the file you provided.
Change the loop to:
for k1 = 1:length(epk_start)
sig_mtx{k1} = signal(epk_start(k1):epk_end(k1));
tim_mtx{k1} = time_vct(epk_start(k1):epk_end(k1));
end
This converts ‘sig_mtx’ and tim_mtx to cell arrays. That should at least solve the current problem. However you will have to program subsequent assignments involving them to accommodate the different lengths, and to change the cell arrays to double arrays in your code. See the documentation on Cell Arrays for details.

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

카테고리

Help CenterFile Exchange에서 Continuous Waveforms에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by