フィルターのクリア

how to fill with the last non empty value across each column

3 ビュー (過去 30 日間)
Qian cao
Qian cao 2015 年 10 月 30 日
コメント済み: Qian cao 2015 年 11 月 1 日
Hi all, how can I fill the cells in each row with the last non empty or non zero value please? For example : the matrix is [0 9 7 0 0 ; 0 0 0 6 0;0 2 0 0 0; 8 0 4 2 0]; The result shows b=[09700;09760;02760;82420]. Any help is welcomed. Thank you very much.

採用された回答

Stephen23
Stephen23 2015 年 10 月 30 日
編集済み: Stephen23 2015 年 10 月 30 日
A = [0 9 7 0 0 ; 0 0 0 6 0;0 2 0 0 0; 8 0 4 2 0]
B = A;
for k = 2:size(B,1)
idx = B(k,:)==0;
B(k,idx) = B(k-1,idx);
end
Produces this output:
>> A
A =
0 9 7 0 0
0 0 0 6 0
0 2 0 0 0
8 0 4 2 0
>> B
B =
0 9 7 0 0
0 9 7 6 0
0 2 7 6 0
8 2 4 2 0
  3 件のコメント
Stephen23
Stephen23 2015 年 10 月 30 日
編集済み: Stephen23 2015 年 10 月 30 日
Run this new code afterwards
idy = true;
for k2 = k:-1:1
idy = idy & A(k2,:)==0;
B(k,idy) = 0;
end
to get this:
>> B
B =
0 9 7 0 0
0 9 7 6 0
0 2 7 6 0
8 0 4 2 0
Qian cao
Qian cao 2015 年 11 月 1 日
Great! Many thanks.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by