Incrementing value in an executing loop

I have a matrix A =
12 13 6 7
5 4 5 1
2 2 11 13
7 1 3 6
and the following code:
%%%%(th=threshold)
th=4
for i=1:4
for j=1:4
if A(i,j) < th
A(i,j) = 0;
G=nnz(A);
end
end
end
I have calculated nnz where I get G=11,for threshold 4.
Now I want to automatically increment the th value such that if G is less than 5 the loop should termainate, and find the value of th when the loop terminated.

1 件のコメント

Albert Yam
Albert Yam 2012 年 7 月 26 日
Please reword your question. I don't understand what you are asking.
From what I gather,
  • when G == 11, you want th = 8 ?
  • when G <= 5 , stop the loop?
  • but if you stop the loop what does increasing 'th' do?

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

 採用された回答

venkat vasu
venkat vasu 2012 年 7 月 27 日
編集済み: Andrei Bobrov 2012 年 7 月 27 日

0 投票

th=4
for i=1:4
for j=1:4
if A(i,j) < th
A(i,j) = 0;
G=nnz(A);
if G<5
th=th+1;
break;
end
end
end
end
this may help you...

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2012 年 7 月 27 日

0 投票

G=5;
th = 0;
while sum(A(:) >= th) >= G
th = th + 1;
end

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

質問済み:

FIR
2012 年 7 月 26 日

Community Treasure Hunt

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

Start Hunting!

Translated by