What code would I use to find the first zero in a column?
9 ビュー (過去 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!