フィルターのクリア

Extract the first negative value in a matrix column

6 ビュー (過去 30 日間)
Thorsten
Thorsten 2013 年 5 月 29 日
I have a 501x100000 Matrix, containing positive and some negative values. The values were calculated using random numbers. I need the value, not the index of the first negative entry in each column. If there is no negative value in the column it should be displayed by a 0.
simplified example:
A = [ 1, 2, 5, 6; -1, 4, 8,-4; -2, 3, 9, 1; -2,-1, 3,-1 ]
The answer I need (for that example) is:
-1,-1,0,-4
Thanks in advance for any help...

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 5 月 29 日
編集済み: Azzi Abdelmalek 2013 年 5 月 29 日
Edit
out=arrayfun(@(x) min([ 0 A(find(A(:,x)<0,1),x)]),1:size(A,2))
  2 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 5 月 29 日
Look at edited answer
Thorsten
Thorsten 2013 年 5 月 29 日
Thank you very much

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

その他の回答 (2 件)

Iain
Iain 2013 年 5 月 29 日
for i = 1:cols
Answer = A(find(A(:,i)<0,1),i);
if isempty(Answer)
Out(i) = 0;
else
Out(i) = Answer;
end
end

Andrei Bobrov
Andrei Bobrov 2013 年 5 月 29 日
t = A < 0;
[~,jj] = find(t);
out = accumarray(jj,A(t),[],@(x)x(1))';

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by