How to get first value of an array with condition

조회 수: 156 (최근 30일)
Sharah
Sharah 2018년 7월 11일
댓글: Adam Danz 2022년 3월 31일
I need to get the first value of a matrix (x2 below) that I initially put condition to, for example:
x1 = Data{i}.Error(something == 1, 1)
x2 = x1(1)
I need to do this within one step without creating `x1', is it possible? Obviously
Data{i}.Error(something == 1, 1)(1)
won't work
  댓글 수: 2
Brian Katz
Brian Katz 2022년 3월 31일
How would you do the same thing with a table construct?
Scenario{4}(Scenario{4}.sID==35,{'Groupe'})
Adam Danz
Adam Danz 2022년 3월 31일
Assuming Groupe is a table variable, and Scenario{4} is a table,
Scenario{4}(Scenatrio{4}.Groupe(Scenario{4}.sID==35))
not tested

댓글을 달려면 로그인하십시오.

채택된 답변

Adam Danz
Adam Danz 2018년 7월 11일
편집: Adam Danz 2018년 7월 11일
By using the 2nd input to find() you can get just the first index of 'Error'.
% fake data
Data{1}.Error = magic(10);
something = [0 1 0 1 0 1 0 0 0 0];
% 2-line method
x1 = Data{1}.Error(something == 1, 1);
x2 = x1(1);
% 1-line method
x3 = Data{1}.Error(find(something == 1, 1), 1);
% Check that they match
x2 == x3
Note that this works if x2 is always the first element of x1. If you're looking for the n_th element of x1 you'll need to replace find() with
max(find(something == 1), n).

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by