2016-06-11 3 views
2

Я царапаю себе голову, и я не могу найти способ удобно примените операцию к значениям y для списка формы {{x1,y1},{x2,y2},...{xn,yn}}. Список находится в этой форме для построения с ListPlot [] в основном. Тип операций, которые я хотел бы применить, будет включать:Управляйте на y из списка {{x1, y1}, {x2, y2}, ... {xn, yn}}

  • Операции Mathematica. Пример: LowpassFilter[y's] (не по пунктам, я знаю)
  • Общие математические операции «точка-за-точкой». Пример: y's*10 + 2

Я знаю, что могу переставлять, а затем filpity-флоп включить список Arround, а затем цель каждого элемента, а затем перенести обратно и flopity-флип и перезаписывает исходный список. Это становится утомительным после рассмотрения каждого случая. Бьюсь об заклад, есть способ сделать это. Или что было бы лучшим способом сохранить значения в списке, который можно легко построить и обработать?

Благодаря

ответ

1
 Map[{#[[1]],2+10 #[[2]]}&,{{x1,y1},{x2,y2},...{xn,yn}}] 


     MapAt[2+10#&,{{x1,y1},{x2,y2},...{xn,yn}},{All,2}] 

я е вы должны работать на 'у' списка в виде списка, сделайте так:

 [email protected][LowpassFilter[#,1]&, 
     [email protected]{{x1,y1},{x2,y2},...{xn,yn}},2] 
+0

Вот и все. 'F [y's]' работает очень хорошо, как '2 + 10 * y's'. Но «LowpassFilter [y's]» не печально, потому что эти функции ожидают один dim-массив, например '{y1, y2, y3 ...}'. В этом случае следует использовать 'LowpassFilter [array [[All, 2]]]' и заменить значения в исходном массиве. –

1

Предположим, что вы назвали ваш список, как l, т.е.

l={{x1,y1},{x2,y2},...{xn,yn}}

Вы можете получить все y комиссионка:

ylist=l[[All,2]]

+0

Это позволяет мне получить y, но тогда мне нужно сделать «Transpose [{l [[All, 1]], I [[All, 2] ] * 10 + 2}] ', чтобы получить исправленный' l'. Я думаю, это обозначение неплохое, и я всегда могу определить его как функцию. –

0

{#, 10 # + 2} & @@@ lst

{{x1, 2 + 10 x1}, {x2, 2 + 10 x2 }, {xn, 2 + 10 xn}}

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