Matlab: выбор элемента за элементом без циклов

У меня есть одна большая матрица например 3000Х300. И мне нужно выделить каждый элемент и сделать с ним несколько вычислений. Я изучил использование забавной функции массива, но поскольку вывод моей программы не является одним значением, это невозможно. Теперь он отлично работает с циклами, но он должен выполняться намного быстрее, поэтому я хочу удалить цикл for.

Может быть, я попытаюсь быть более конкретным: каждое значение большой матрицы должно дать мне ответ из 4 разных матриц размером 4X6020..

Поэтому я не знаю, возможно ли сделать это векторизованным... Может быть, у кого-то есть другие предложения, чтобы сделать это быстрее?

Привет,


person Emilie Tuijnder    schedule 24.07.2012    source источник
comment
Не могли бы вы опубликовать краткий пример того, что вы делаете в своем цикле, чтобы я мог получить представление о формате вывода? Например, for x=1:3000; for y=1:300; out(x,y,:,:) = func1(in(x,y)); end; end; Ура!   -  person jmetz    schedule 24.07.2012


Ответы (1)


Вы можете использовать arrayfun и установить uniformoutput на false. См. здесь.

person jmetz    schedule 24.07.2012