how to perform this matrix manupulation..?

조회 수: 1 (최근 30일)
harshal j
harshal j 2016년 4월 10일
댓글: harshal j 2016년 4월 10일
hi, I have a row matrix eg [30,0,0,0,0,10,0,0,0,0,30,30,30,0,0,0,0,0,10....] I have to consider first element i.e 30 (and label it by 'a') then I have to discard the elements between 30 and 10. then I have to consider first 10 (and label it by 'b'),again I want to discard the elements between the 10 and last 30 ( also want to discard the first two elements whose value is 30 and consider the last 30(and label it by 'c') ) I want to repeat the same steps for the entire row matrix whose size is 1x2000. I don't know how to do this. Please help me to write this matrix logic. Thanks in advance

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 4월 10일
편집: Azzi Abdelmalek 2016년 4월 10일
Do not label them with different variables, just store them in a cell array
  댓글 수: 5
Azzi Abdelmalek
Azzi Abdelmalek 2016년 4월 10일
v=[30,0,0,0,0,10,0,0,0,0,30,30,30,0,0,0,0,0,10];
w=v~=0;
ii=strfind([0 w],[0 1]);
out=arrayfun(@(x) v(x),ii,'un',0);
celldisp(out)
harshal j
harshal j 2016년 4월 10일
Thank you so much, sir. you have solved my problem, thank you once again.

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

추가 답변 (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