Можно ли переместить нулевые записи в конец в массиве двумерных ячеек? Например. если ячейка (2,2) была []
, ячейка (3,2) заходила бы в (2,2) место, (4,2) в (3,2) и т. д., и нули были бы добавлены в конечная строка, например.перемещение пустых ячеек в массиве двумерных ячеек
1
A
ответ
4
C = {1 []; [] 4; 'aa' []}; %// example cell array
e = cellfun('isempty', C); %// this indicates for each cell if it's empty or not
[~, r] = sort(e, 1); %// sorting of each col to move empty cells to the end
[m, n] = size(C);
C = C(bsxfun(@plus, r, (0:m:m*(n-1)))); %// apply sorting to each col, using linear indexing
В этом примере C
изначально
C =
[ 1] []
[] [4]
'aa' []
и становится
C =
[ 1] [4]
'aa' []
[] []
Некоторые замечания:
- Это работает, потому что
sort
is stable: он сохраняет первоначальный заказ в случае галстуков. Обратите внимание:e
содержит только нули и единицы. - Linear indexing сделано эффективно с
bsxfun
. (repmat
иsub2ind
может быть использован вместо.) Массив
+0
отличный ответ! Очень эффективно, а также – GameOfThrows
+0
@GameOfThrows Спасибо! –
+0
: О, потрясающе! это было именно то, что я хотел! Большое спасибо! :) – Cobe
Смежные вопросы
- 1. Удаление пустых строк в массиве ячеек
- 2. Чтение пустых ячеек в качестве ячеек данных
- 3. Удаление Пустых ячеек массивов
- 4. преобразование матрицы ячеек одномерных размеров в массив двумерных ячеек
- 5. Как найти элементы в массиве двумерных ячеек более эффективно?
- 6. Заполнение конкретных пустых ячеек
- 7. Предотвращение создания пустых ячеек
- 8. Заполнение пустых ячеек
- 9. Календарь заполнения пустых ячеек
- 10. VBA - печать пустых ячеек
- 11. Обнаружение пустых ячеек
- 12. Перемещение ячеек в TableView
- 13. Оценка ячеек строк в массиве ячеек
- 14. определить среднюю длину ячеек в массиве ячеек
- 15. Октава, добавляемая в массив двумерных ячеек
- 16. Удаление пустых строк в массиве трехмерных ячеек в Matlab
- 17. Работа в массиве ячеек
- 18. Стирание ячеек в массиве
- 19. VBA для поиска пустых ячеек
- 20. Проверка пустых ячеек с OpenPyXl
- 21. PHPExcel, принимающий формат пустых ячеек
- 22. Автофильтр для поиска пустых ячеек
- 23. Таблицы HTML: семантика пустых ячеек
- 24. Подтвердить таблицу для пустых ячеек
- 25. xlDown Не выбор пустых ячеек
- 26. Фильтрация связанных, но пустых ячеек
- 27. Перемещение вверх для перекрытия пустых ячеек с использованием пользовательского ввода
- 28. Перемещение в 2-мерном массиве прямоугольных ячеек со стрелками
- 29. Назначение наборов ячеек в массиве ячеек в MatLab
- 30. как взять продукт всех ячеек в массиве ячеек в matlab
Ячейка по-прежнему должен быть «прямоугольной формы», так что вы можете легко удалить, и вся строка или столбец, но вы не можете удалить одну ячейку. Вы просто хотите переместить все пустые ячейки в конец их соответствующих строк? – Dan
, но тогда ваша структура ячейки изменится, вам придется обнулить ее в конце, лучше переместить [] в последнюю строку/столбец вашей структуры ячейки, а не удалять их – GameOfThrows
вы правы! Я отредактировал сообщение :) – Cobe