フィルターのクリア

How can i make the sum of matrix elements>0 under the condition that there are min 3 zeros between the sums?

1 回表示 (過去 30 日間)
I hava a matrix: a=[2 3 0 0 4; 0 0 0 0 0; 0 5 3 0 4; 14 4 0 1 1; 0 0 0 0 0; 0 0 0 7 9; 0 0 0 0 0; 0 0 0 0 0; 9 6 0 0 1; 1 1 1 0 0];
How can i make the sum of elements>3, under the condition that there are at least 3 zeros between the last element of one and the first element of the next sum?
Output should be: E=[9 32 16 19]
thanks!
  2 件のコメント
Image Analyst
Image Analyst 2016 年 4 月 23 日
Next sum? Why is there more than one sum??? Looks like you need to read this before you fix your post.

サインインしてコメントする。

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 23 日
編集済み: Azzi Abdelmalek 2016 年 4 月 23 日
a=[2 3 0 0 4; 0 0 0 0 0; 0 5 3 0 4; 14 4 0 1 1; 0 0 0 0 0; 0 0 0 7 9; 0 0 0 0 0; 0 0 0 0 0; 9 6 0 0 1; 1 1 1 0 0]
b=reshape(a',1,[]);
id=~b;
ii=strfind(id,[1 1 1 0])+2;
ii=[0 ii numel(b)];
for k=1:numel(ii)-1
out(k)=sum(b(ii(k)+1:ii(k+1)));
end
out
  10 件のコメント
hdiba
hdiba 2016 年 4 月 24 日
but the sums are not row sums. this was just an assumption you've done in the comment above.
hdiba
hdiba 2016 年 5 月 4 日
is there any way to get the number of elements in a sum? maybe somehow with the difference between the end position and beginning position of the sum? in our example for sum 9=2+3+0+0+4, there are 5 summands

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by