array operation in matlab
이전 댓글 표시

here we have a vector column 'FF_liter_ho_'.If i want to know that how many times non zero values were greater than 770 in a row.
so it happened only once in the column.
채택된 답변
추가 답변 (2개)
FF_liter_ho_ = [NaN 773.5 NaN NaN NaN NaN NaN NaN NaN 773.5];
% number of elements greater than 770:
nnz(FF_liter_ho_ > 770)
% or:
% number of unique elements greater than 770:
nnz(unique(FF_liter_ho_) > 770)
댓글 수: 3
ali hassan
2022년 2월 12일
I see. When you said "in a row", I interpreted that to mean "in a given row of the matrix" or "by row" rather than "consecutively", which is the meaning you intended.
% FF_liter_ho_ = [NaN 773.5 NaN NaN NaN 760 NaN NaN NaN NaN 773.5];
FF_liter_ho_ = [771 773.5 NaN NaN NaN 760 NaN NaN 776 780 773.5];
idx = [false FF_liter_ho_(:).' > 770 false];
start_idx = strfind(idx,[false true])
end_idx = strfind(idx,[true false])
n_consecutive = end_idx-start_idx
max_n_consecutive = max(n_consecutive)
Image Analyst
2022년 2월 12일
Personally I think the regionprops() method in my Answer is more straightforward since you're using a function specifically meant for computing this, and don't have to do it yourself by manually manipulating indexes, but this method is okay if you do not have the Image Processing Toolbox.
Enrico Gambini
2022년 2월 11일
sum(Table.FF_liter_ho_>770)
카테고리
도움말 센터 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!