looping through columns of a matrix and saving output
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Willie Smit
am 5 Okt. 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.
Antworten (1)
KSSV
am 5 Okt. 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) ;
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!