What code would I use to find the first zero in a column?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I need to calculate the peak power from several sets of data which I have imported into Matlab. This is what the data looks like:
There is a string on data in column 5 which at some point changes to zeros, so what I need to do is find the average of all the numbers until the number changes to zero. How would I tell Matlab to add up and find the peak of the data until it changes to a 0?
0 commentaires
Réponse acceptée
Jan
le 22 Avr 2014
Are you talking about a vector or should this be applied to columns of a matrix?
For a vector:
x = rand(100, 1);
x(17:100) = 0;
idx = find(x == 0, 1);
if ~isempty(idx)
result = sum(x(1:idx - 1)) / (idx - 1);
else % No zero found:
result = sum(x) / length(x); % Or mean() of course
end
For a matrix you could work with Idx = cumsum(X == 0, 1) == 0. But creating the intermediate index matrix will most likely need more time than the vectorization saves. Therefore I'd stay at the above method for vectors and put it into a loop over the columns.
0 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!