Info

This question is closed. Reopen it to edit or answer.

creating an ongoing matrix

1 view (last 30 days)
Elaheh
Elaheh on 8 Oct 2019
Closed: MATLAB Answer Bot on 20 Aug 2021
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 Comments
Elaheh
Elaheh on 8 Oct 2019
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 on 9 Oct 2019
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

Answers (0)

This question is closed.

Community Treasure Hunt

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

Start Hunting!