Учитывая массив ячеек, подобный этому:
temp = {
'Summary Test Re…', 'Overall', '', '', 'OVP Transition …', '', '', '', ''
'Pass/Fail', 'Passed', '', 'No Transition t…', 'Passed', '', '', '', ''
'Failed cases', 'No failure', '', '', 'No failure', '', '', '', ''
'', '', '', '', '', '', '', '', ''};
мы можем найти пустые ячейки (как вы уже узнали), используя
empty = cellfun('isempty',temp);
Далее, мы можем удалить строки, где всеячейки пустые с
temp(all(empty,2),:) = [];
и столбцы, в которых все ячейки пусты, с
temp(:,all(empty,1)) = [];
all(empty,1)
возвращает вектор логической строки, где элемент равен true
, если все ячейки в этомстолбец пуст.Мы используем этот логический вектор для индексации этих элементов массива и установки их в пустой массив.Назначение пустого массива - это выражение MATLAB для удаления элемента массива.Удаление полных строк и столбцов позволяет сохранить форму массива.
Обратите внимание на разницу между temp(:,1)=[]
и temp{:,1}=[]
.Первый удаляет столбец элементов массива, второй назначает пустой массив каждой из ячеек в столбце массива ячеек.