creating an ongoing matrix
정보
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
이전 댓글 표시
Hello
The following simple script is going to merge two or three files and then calculate the mean of every n columns in a for loop. What I need to do is to create a new matrix as the number of averaged columns is added to the matrix one by one and write the resluts in an excel file. Thank you a lot in advance.
path='D:\';
fileName1=strcat(path,'Se1_101_200.xlsx'); %23*35 double
fileName2=strcat(path,'Se1_201_300.xlsx'); %23*35 double
data1 = xlsread(fileName1,2);
data2 = xlsread(fileName2,2);
mergedData1=[data1 data2]; %23*70 double
for i=1:35
for ii=36:70
B = mergedData1(:,[i ii]);
meanVal= mean(B,2);
% I need to create a matrix of 23*35 with the changing meanVal
end
end
댓글 수: 7
Bob Thompson
2019년 10월 8일
Index your output.
meanVal(:,i) = mean(B,2);
Or something like that.
Elaheh
2019년 10월 8일
Adam Danz
2019년 10월 8일
Could you explain in words what you're trying to do? Your ii-loop has 34 iterations and each of those iterations happen 35 times within your i-loop. That's 1190 iterations but your comment in the code suggest your're expecting 35 iterations.
Elaheh
2019년 10월 8일
Adam Danz
2019년 10월 8일
To average the columns of a matrix,
mean(M,1)
Elaheh
2019년 10월 8일
Bob Thompson
2019년 10월 9일
Hmm, ok, I think I better understand what you're trying to do now. Just to reiterate though, you want the average of the first columns of each data set (columns 1 and 36) and then the average of the second columns of each data set (columns 2 and 37), but not the average of the non-corresponding columns (columns 1 and 37).
for i = 1:size(mergedData1,2)/2
B = mergedData1(:,[i i+size(mergedData1,2)/2]);
meanVal(:,i) = mean(B,2);
end
답변 (0개)
이 질문은 마감되었습니다.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!