разделение долгая 2D матрица в третий размер

Ваши статические классы и статические поля экземпляра совместно используются всеми запросами к приложению, и имеет то же время жизни как домен приложения. Поэтому необходимо быть осторожными при использовании статических экземпляров, так как у Вас могли бы быть проблемы синхронизации и т.п.. Также примите во внимание, что статические экземпляры не будут GC'ed, прежде чем пул приложений будет переработан, и поэтому все, на что ссылается статический экземпляр, не будет GC'ed. Это может привести к проблемам использования памяти.

, Если бы Вам нужен экземпляр с тем же временем жизни как запрос, я предложил бы использовать HttpContext.Current.Items набор. Это дизайном, предназначенным, чтобы быть местом для хранения материала, в котором Вы нуждаетесь всюду по запросу. Для более хорошего дизайна и удобочитаемости, можно использовать Шаблон "одиночка", чтобы помочь Вам управлять этими объектами. Просто создайте Singleton-класс, который хранит его экземпляр в HttpContext.Current.Items. (В моей общей библиотеке для ASP.NET у меня есть универсальный класс SingletonRequest с этой целью).

13
задан Divakar 1 January 2016 в 09:14
поделиться

1 ответ

Вот однострочное решение, использующее reshape и permute :

C = 3;          % Number of columns
R = 6;          % Number of rows
newR = 2;       % New number of rows
A = randi(10, [R C]);  % 6-by-3 array of random integers
B = permute(reshape(A.', [C newR R/newR]), [2 1 3]);

Это, конечно, требует, чтобы newR делился равномерно в R .

13
ответ дан 2 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: