What code would I use to find the first zero in a column?
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Jan
2014-4-22
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 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!