looping through columns of a matrix and saving output

24 views (last 30 days)
I have a matrix which is 1000x4. Each column is a different experiment run.
I want to loop through each column of the matrix and reshape it by taking the mean of every 1000 values.
for a = 1:4;
GTsec = mean(reshape(vel(1:1000),10,[]),1); %reshape to per second by taking the mean GT over 1000 files
end
  2 Comments
C.G.
C.G. on 5 Oct 2021
Edited: C.G. on 5 Oct 2021
ok I understand, thanks. I said vel is a 1000x4 double; 4 columns, 1000 entries.
The main thing I want to do is I want to reshape each column and create a new matrix of the reshaped data.
I can do one column of this using the code below but every time it overwrites the previous and I dont want it to.
GTsec = mean(reshape(vel(1:1000),10,[]),1);

Sign in to comment.

Answers (1)

KSSV
KSSV on 5 Oct 2021
This kind of error occurs when you are trying to save more number of elements than it is intiliazed.
Example:
A = zeros(1,3) ;
A(1) = rand ; % no error, becuase you are saving one element as initilaized
A(2) = rand(1,2) ; % error becuase you are saving two elements instead of one
Unable to perform assignment because the left and right sides have a different number of elements.
So you are trying to save RHS which has multiple elements into LHS which is initialized as a single element. To avoid the error, get the dimensions in prior and initialize properly and save. If not save them into a cell array.
A = cell(1,2) ;
A{1} = rand ;
A{2} = ran(1,3) ;
  1 Comment
C.G.
C.G. on 5 Oct 2021
Ok I understand the error, thank you.
I am trying to reshape each column and create a new matrix of the reshaped data.
I can do one column of this using the code below but every time it overwrites the previous and I dont want it to, thats why I was trying to use a loop and this is the line it errors on.
GTsec = mean(reshape(vel(1:1000),10,[]),1);

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!