2013-06-05 2 views
1

Я пытаюсь найти более элегантный способ наложения на нулевой вектор согласно индексу (1,3) вектора длины. Как вы можете сделать это более элегантно/succintly?Matlab: как отложить до нуля вектор по индексу?

Входной

(0,0,0,0) и (1,3)

Предназначенный выход

(1,0,1 , 0)

Trial

>> B=[0,1,0,0;0,1,0,1;1,0,0,0;1,1,1,0]; 

>> find(B(1,:)==0 & B(4,:)==1) 

ans = 

    1  3 

>> zeros(1,4)+[1,0,1,0] 

ans = 

    1  0  1  0 

В основном (1,3) ---> (1,0,1,0).

+0

Итак, (1,4) станет (1,0,0,1) и т. Д.? Однозначный индекс кортежей указывает, где появляются 1s, все остальное равно 0? – Patashu

+0

@ Паташу да (1,4) будет (1,0,0,1). Да. – hhh

ответ

4

Если вход I таким образом, что I=[0,0,0,0] и пара индекс ind=[1,3], то просто

I(ind)=1; 

Это вопрос MATLAB очень простой, и я думаю, только чтение documentation about matrix indexing должна хватило.

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