2016-08-31 5 views
-6

У меня есть массив в том же размере:Выберите элемент из массива, выберите в другой булевой MATLAB массива

a = 5:10; 
b = [1 0 1 1 0 0]; 

Я хочу, чтобы выбрать элемент, где в булевом массиве (б) 1.

c = [5 7 8]; 

Я хочу сделать это элегантным способом без цикла.

+3

Это языковые основы MATLAB: http://www.mathworks.com/help/matlab/math/matrix-indexing.html#bq7egb6-1. Не совсем уверен, почему стоит Q & A – excaza

+1

@Tal, вопрос уже содержит ответ, поэтому он не будет удален. Хотя желательно избегать вопросов, требующих повторения, их сохранение не только плохо. Люди используют разные поисковые запросы в Google, поэтому некоторые могут приземлиться на этот вопрос, а не на более тщательный. Пожалуйста, подумайте о принятии ответа CKT =) http://meta.stackexchange.com/a/32315/243806 –

+0

Если вы хотите, чтобы люди сохранили хороший ответ на дубликат quastion, вам нужно вознаградить их. – Tal

ответ

4

Вы можете просто сделать c = a(logical(b)), если b еще не является логичным. Если это так, то просто c = a(b).

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