What code would I use to find the first zero in a column?

4 Ansichten (letzte 30 Tage)
Franchesca
Franchesca am 22 Apr. 2014
Beantwortet: Jan am 22 Apr. 2014
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?

Akzeptierte Antwort

Jan
Jan am 22 Apr. 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.

Weitere Antworten (0)

Kategorien

Mehr zu Numeric Types finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by