필터 지우기
필터 지우기

Do calculations for lines that are true

조회 수: 1 (최근 30일)
Dylan Mecca
Dylan Mecca 2018년 2월 27일
댓글: Rik 2018년 3월 9일
How can I make matlab do a calculation, that will require a previous line, for a condition being true? Please reference the file I've attached.
When the 'z' vector is true, or 1, I want to take the current line's 'v', and subtract the previous line's 'v'. Then, if the next line is also true, to do the same calculation; so on and so forth until z = 0.
I will then want to take an average over each given interval of z being true, and put that into a new vector.
Any help is appreciated!
  댓글 수: 8
Guillaume
Guillaume 2018년 2월 27일
Can you explain a lot better what it is you want to do. For your given file, what should the output be?
Dylan Mecca
Dylan Mecca 2018년 2월 27일
Output should have a new vector of average 'v' only where z = 1.
For instance, cells 3:9 have 'z' as true. Take the average of 'v' during that interval, and store that average value as the first value in a new vector.
Do the same for cells 11:16, where that average will be stored as the second value in the new vector.
And finally, do it for a third vector value for average value of 'v' where 'z' = 1 in cells 19:22.
I can build a hard code to satisfy these cell values, but I need help developing a way to make matlab see the pattern I', trying to explain.

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

답변 (1개)

Rik
Rik 2018년 2월 27일
If you have the Image Processing Toolbox, you can use bwlabel to label each group of indices where z is 1. If you don't have this toolbox, this wikipedia page could help.
data=xlsread('absbreak.xlsx');
v=data(:,2);
z=data(:,3);
[labels,num]=bwlabel(z==1);
avg_vec=zeros(1,num);
for n=1:num
avg_vec(n)=mean(v(labels==n));
end
  댓글 수: 1
Rik
Rik 2018년 3월 9일
If you found this answer useful, please mark it as accepted answer. It will give me reputation points and will make it easier for other people with the same question to find an answer.

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

카테고리

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