Если вы хотите избежать использования цикла for, это, вероятно, самый чистый способ сделать это:
indexCell = num2cell(indexmatrix, 1);
linearIndexMatrix = sub2ind(size(kDimensionalMatrix), indexCell{:});
finalTable = kDimensionalMatrix(linearIndexMatrix);
Первая строка помещает каждый столбец indexmatrix
в отдельные ячейки ячейки с использованием num2cell
. Это позволяет нам передавать все k
столбцы в виде списка разделенных запятыми в sub2ind
, функцию, которая преобразует индексы индексирования (строка , столбец и т. д.) в линейные индексы (каждый элемент матрицы пронумерован от 1 до N
, N
- общее число элементов в матрице). Последняя строка использует эти линейные индексы для замены цикла for. Хорошее обсуждение индексации матриц (нижний, линейный и логический) можно найти здесь здесь .
Тенденция чтобы уклониться от петель в пользу векторизованных решений, к чему привыкли многие пользователи MATLAB (включая меня). Однако более новые версии MATLAB обрабатывают цикл намного эффективнее. Как обсуждалось в , этот ответ на другой вопрос SO, использование для циклов может иногда приводить к более быстродействующему коду, чем вы могли бы получить с помощью векторизованного решения.
Я, конечно, НЕ говорю вы не должны пытаться больше векторизовать свой код, только чтобы каждая проблема была уникальной. Векторизация будет часто быть более эффективной, но не всегда . Для вашей проблемы скорость выполнения для циклов по сравнению с векторизованным кодом, вероятно, будет зависеть от того, насколько велики значения n
и k
.
Да, почтовые данные в безопасности. Но происхождение этих данных не так. Таким образом, кто-то может заставить пользователя с помощью JS войти на ваш сайт, просматривая веб-страницу злоумышленника.
Чтобы предотвратить это, django отправит случайный ключ как в файле cookie, так и в данных формы. Затем, когда пользователи отправляют сообщения POST, он проверяет, идентичны ли два ключа. В случае обмана пользователя сторонний веб-сайт не может получить файлы cookie вашего сайта, что приводит к ошибке аутентификации.