looping through columns of a matrix and saving output
2 views (last 30 days)
Show older comments
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
Willie Smit
on 5 Oct 2021
What is the size of vel?
It is not clear from the code, but it seems like you want to calculate the mean, standard deviation, minimum and maximum for different experiments. If each column of vel stores the data of one experiment, then the commands
mean_GT=mean(vel);
std_GT=std(vel);
will return row vectors, where each entry corresponds to an experiment.
Answers (1)
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
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) ;
See Also
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!