2013-05-31 14 views
0

у меня есть большая матрица с размером (1000,1000,20)Matlab сравнить элементы большой матрицы

Я должен сравнить на позиции (x,y,1) элементы с (x,y,2) и (x,y,3) и так далее до (x,y,20) найти минимум, а индекс, где минимум.

В конце я хочу 2 новых матриц размером (1000,1000,1): один с минимальным элементом и один с индексом где минимум.

Например, у меня есть:

A(:,:,1)=[1,2;2,4] 

A(:,:,2)=[0,3;1,2] 

Я хочу, чтобы получить матрицы:

X = [0,2;2,4] 

и:

Y=[2,1;1,1] 

с индексной информацией.

Я могу решить его с помощью цикла, но хотел бы использовать более эффективный метод времени.

ответ

0

Я думаю, что ваш пример должен быть переписан, но встроенный в мин функция будет делать трюк:

[C,I] = min(A,[],3) 
+0

thx его рабочий – user2441536

0

Вы можете использовать функцию min для этого.

Когда используется таким образом:

[C, I] = min(A, [], dim) 

возвращает мельчайшие элементы вдоль данной размерности dim в C и их индексы в I.

Возвращенные индексы - это линейные индексы, которые вы можете превратить в индексы, используя ind2sub для каждого индекса.

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