2015-11-18 10 views
-1

я есть 2d массив, которые состоят из2d массив сортировки условия WIH

  1. ). 1-я строка для координаты оси y точки (i)
  2. ). 2-я строка для координаты оси x точки (i)
  3. ). я

пусть рассмотреть следующие

a(1,:)=[1,2,3,4,10,11,12,13,19,20,21,22]; 

a(2,:)=[4,1,3,2,4,3,1,2,3,2,4,1]; 

a(3,:)=[1,2,3,4,5,6,7,8,9,10,11,12]; 

согласно приведенному выше массива «а» это показывает, что она замкнута в соответствии с первой колонки (в соответствии с координатами у).

, но в моем случае я хочу, чтобы отсортировать их со следующими шагами

  • определить положение, в котором разница между двумя последовательными значениями у координат (значения а (а, :)) быстро и
  • изменения
  • сортировать значения между теми, быстро изменяются по х координации (а (2, :))

давайте рассмотрим следующий

а =

1  2  3  4 10 11 12 13 19 20 21 22 
4  1  3  2  4  3  1  2  3  2  4  1 
1  2  3  4  5  6  7  8  9 10 11 12 
0  1  1  1  6  1  1  1  6  1  1  1 

здесь четвёртые строки представляют собой разницу между двумя последовательными координатами (у (1, :))

там 5-значения показывает быстрое изменение поэтому я хочу рассмотреть установить первое значение 4 и анализировать й и y координаты по координате x (a (2, :))

Таким же образом для всего массива и следующего массива представлены ожидаемые результаты.

а =

2  4  3  1 12 13 11 10 22 20 19 21 
1  2  3  4  1  2  3  4  1  2  3  4 
1  2  3  4  5  6  7  8  9 10 11 12 
0  1  1  1  6  1  1  1  6  1  1  1 

записка:

3-е значение столбца не должно быть изменено.

быстрое изменилось не получается в тот же период, как и в выше его изменения. (В моем случае это произошло после того, как каждые 4 значений)

быстрое изменение не 6 на каждый момент времени (пусть следует решение удобства для Значения больше чем 3)

  • может ли один помочь мне код этого *
+0

* Может ли кто-нибудь помочь мне закодировать это *, вы можете помочь, за правильную цену, конечно. В общем, хорошая практика - либо заплатить авансом, либо добавить код себя, чтобы показать, что вы приложили усилия для решения этого. В любом случае, это привлекает людей сюда. – Adriaan

+0

Несколько раз упоминается «быстрое изменение». Это неоднозначно, пожалуйста, точно о том, что вы имеете в виду. – mikkola

ответ

0

Я немного запутался, что вы хотите. Этот код будет группировать ваш массив в блоки, где они изменяются только на обычную сумму (заданную переменной normalchange). Он будет создавать массив ячеек, где каждая ячейка представляет собой группу аналогичных элементов. В этом случае нормальное изменение равно 1, тогда вы получаете три группы.

Сообщите мне, если это поможет.

a(1,:)=[1,2,3,4,10,11,12,13,19,20,21,22]; 

a(2,:)=[4,1,3,2,4,3,1,2,3,2,4,1]; 

a(3,:)=[1,2,3,4,5,6,7,8,9,10,11,12]; 

interestedmembers=0; 
thingtoanalyse={}; 
startOfMembers=1; 
normalchange = 1; 
for i=2:size(a,2) 
    if a(1,i)-a(1,i-1) > normalchange 
     thingtoanalyse{end+1}=a(:,startOfMembers:startOfMembers+... 
      interestedmembers); 
     interestedmembers=0; 
     startOfMembers = i-1; 
    end 
    interestedmembers = interestedmembers+1; 
end 
% catch everything after the last jump and classify as interesting. 
thingtoanalyse{end+1} = a(:,startOfMembers:end); 

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

  • Нет связанных вопросов^_^