2015-12-03 1 views
0

Я изучаю скелетные координаты, и до сих пор у меня есть три сустава с их координатами x, y и z в одной матрице X. X в настоящее время 214 x 9. В X , должны быть определенные координаты, соответствующие условиям, которые я изучаю.MATLAB Пороговое значение нескольких столбцов в матрице, строка возврата

Я хочу, чтобы иметь возможность искать каждый столбец, используя определенные критерии, например, столбец 1 (моя координата x1) должен быть> 0.1227, но < 0.120781. столбец 2 должен также соответствовать определенным критериям и т. д.

На данный момент мой код выглядит как что-то вроде этого,

R = X(X< 0.122781 & X > 0.120781); 

, который, очевидно, не работает. Когда я пытаюсь ввести (:, 1) в этом коде (для столбца 1), я тоже никуда не денутся. Я не нашел много информации об этом, но, возможно, я что-то упустил.

Есть ли у кого-нибудь предложения?

+0

просят 'x1' быть больше, чем 0,122 ** и ** меньше, чем 0.120 результаты в пустой набор ... – Shai

ответ

1

Вам необходимо выбрать соответствующие строки, а затем индекс X. Вы можете сделать это как «однострочный», но это может быть трудно читать.

# example selecting according to first and second columns 
row_sel = X(:,1) > 0.122 & X(:,1) < 0.2 & \ 
      X(:,2) > 0.43 & X(:,2) < 0.5 ; %// and so on... 

R = X(row_sel,:); %// select the matching rows. 
+0

Brilliant, спасибо. Есть ли способ получить R = X (row_sel, :); для вывода всей строки? поэтому если 1, то целая строка для всех 9 столбцов. –

+0

@JoshRobertson, пожалуйста, попробуйте: 'X (1, ​​:)' дает ** целую ** первую строку. Обратите внимание на двоеточие (':') для второго индекса, указывающего «все столбцы». – Shai

Смежные вопросы