find out negative values and specific values, take it out, record those negative and specific values into a text file

given a (52560 x 8 double)
I need to find out the negative values from the last 3 columns, and if the value is 70% more than the sum of last 3 values and next 3 values
then replace the value with the sum of last 3 values and next 3 values divided by 6.
then record those values into a log file(txt file) (X x 3 matrix)

댓글 수: 3

hello
this looks like a homework
what have you done so far ?
I just started doing it, I just done combine data from 3 txt file into 1 matrix, and split the variables.
so far this part, I have no idea how to do it

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

답변 (1개)

The following code should do it. Note that because of the rules you have, you have to skip the first and the last three row.
A=[52560 x 8];
X=zeros(1,3);
for ii=4:length(A(:,1))-3
NValues=zeros(1,3);
for jj=1:3
Sum1=sum(A(ii-3:ii-1,5+jj))+sum(A(ii+1:ii+3,5+jj));
Value= (A(ii, 5+jj)-Sum1)/A(ii, 5+jj);
if A(ii, 5+jj)<0 && Value>0.7
NValues(1,jj)=A(ii,5+jj);
A(ii,5+jj)=Sum1/6;
end
end
if sum(abs(NValues))~=0, X=[X;NValues]; end
end
if length(X(:,1))>1, X=X(2:end,:); end
xlswrite('Values.xlsx',X,1);

카테고리

도움말 센터File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

제품

릴리스

R2022a

질문:

2022년 10월 11일

댓글:

2022년 10월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by