2013-03-18 2 views
-1

У меня есть матрица данных X, где строки - это отметки времени и столбцы - это измерения. Я могу легко найти наименьший путь суммы через матрицу с помощью:Найти самый низкий путь суммы через матрицу

[r c]=size(X) 
for w=1:r 
Y(w)=min(X(w,:)) 
end 

result = sum(Y) 

это полезно, но то, что было бы очень полезно, если нашлась функция, которая может сказать мне различные пути для заданной частоты. Например, если я группирую 2 строки вместе, это уменьшает частоту ...... Если бы была функция, которая могла бы найти мне разные пути с разными частотами для определенного допуска, тогда ранжируйте их, это будет идеально!

Много спросить, но должен быть статистический или математический инструмент, который делает это ......

+0

Вам не нужно зацикливать, чтобы вычислять независимые минуты как это. Просто используйте 'Y = min (X, [], 2);' 2 означает вычисление min во втором измерении, а не в первом. MATLAB - отличный инструмент для работы. Но ваш запрос о проблеме чрезвычайно специфичен для вашего приложения, поэтому вам придется писать код самостоятельно. Начните с уточнения вашей проблемы. Что означает «группа», точно? Как допускается толерантность к минимальному вычислению? – Peter

ответ

0

Не уверен, что если я полностью понимаю вопрос, но если я читаю то, что вы хотите, это необходимо сделать трюк для фиксированной частоты:

frequency = 2; 
r = size(X,1); 
Y = zeros(r,1); 
for w=1:frequency:r 
Y(w)=min(min(X(w:w+frequency-1,:))) 
end 

result = sum(Y) 

Вы можете перебрать частоты, чтобы найти наилучшую длину пути для каждой частоты.

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

+0

Предполагается, что вы хотите получить наименьшее значение из каждой строки 'frequency'. Если вам нужно «проходить» через каждую строку, но просто хотите решить, где на каждой «частоте» вы можете добиться этого, заменив «min (min» на 'min (sum' –

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