Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

creating an ongoing matrix

조회 수: 1 (최근 30일)
Elaheh
Elaheh 2019년 10월 8일
마감: MATLAB Answer Bot 2021년 8월 20일
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
Elaheh
Elaheh 2019년 10월 8일
When I replaced "meanVal = mean(B,2);" with "meanVal(:,i) = mean(B,2);", I got a matrix with the desired size, but the problem was that in each iteration the values of all columns in meanVal were changed.
Bob Thompson
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!

Translated by